diff --git a/.circleci/config.yml b/.circleci/config.yml index 1db280c45..b90ba6693 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,4 +1,4 @@ -version: 2 +version: 2.1 jobs: build: docker: @@ -41,7 +41,7 @@ jobs: - /home/circleci/bin - run: name: Hugo Build - command: npx hugo --logLevel info --minify --destination workspace/public + command: yarn hugo --environment production --logLevel info --gc --destination workspace/public - persist_to_workspace: root: workspace paths: @@ -68,7 +68,6 @@ jobs: when: on_success workflows: - version: 2 build: jobs: - build diff --git a/.github/instructions/contributing.instructions.md b/.github/instructions/contributing.instructions.md index 4fb3b1efe..2774f384f 100644 --- a/.github/instructions/contributing.instructions.md +++ b/.github/instructions/contributing.instructions.md @@ -1679,7 +1679,7 @@ The shortcode takes a regular expression for matching placeholder names. Use the `code-placeholder-key` shortcode to format the placeholder names in text that describes the placeholder--for example: -``` +```markdown {{% code-placeholders "DATABASE_NAME|USERNAME|PASSWORD_OR_TOKEN|API_TOKEN|exampleuser@influxdata.com" %}} ```sh curl --request POST http://localhost:8086/write?db=DATABASE_NAME \ @@ -1703,3 +1703,83 @@ InfluxDB API documentation when documentation is deployed. Redoc generates HTML documentation using the InfluxDB `swagger.yml`. For more information about generating InfluxDB API documentation, see the [API Documentation README](https://github.com/influxdata/docs-v2/tree/master/api-docs#readme). + +## JavaScript in the documentation UI + +The InfluxData documentation UI uses JavaScript with ES6+ syntax and +`assets/js/main.js` as the entry point to import modules from +`assets/js`. +Only `assets/js/main.js` should be imported in HTML files. + +`assets/js/main.js` registers components and initializes them on page load. + +If you're adding UI functionality that requires JavaScript, follow these steps: + +1. In your HTML file, add a `data-component` attribute to the element that + should be initialized by your JavaScript code. For example: + + ```html +
+ ``` + +2. Following the component pattern, create a single-purpose JavaScript module + (`assets/js/components/my-component.js`) + that exports a single function that receives the component element and initializes it. +3. In `assets/js/main.js`, import the module and register the component to ensure + the component is initialized on page load. + +### Debugging JavaScript + +To debug JavaScript code used in the InfluxData documentation UI, choose one of the following methods: + +- Use source maps and the Chrome DevTools debugger. +- Use debug helpers that provide breakpoints and console logging as a workaround or alternative for using source maps and the Chrome DevTools debugger. + +#### Using source maps and Chrome DevTools debugger + +1. In VS Code, select Run > Start Debugging. +2. Select the "Debug Docs (source maps)" configuration. +3. Click the play button to start the debugger. +5. Set breakpoints in the JavaScript source files--files in the + `assets/js/ns-hugo-imp:` namespace-- in the + VS Code editor or in the Chrome Developer Tools Sources panel: + + - In the VS Code Debugger panel > "Loaded Scripts" section, find the + `assets/js/ns-hugo-imp:` namespace. + - In the Chrome Developer Tools Sources panel, expand + `js/ns-hugo-imp://assets/js/`. + +#### Using debug helpers + +1. In your JavaScript module, import debug helpers from `assets/js/utils/debug-helpers.js`. + These helpers provide breakpoints and console logging as a workaround or alternative for + using source maps and the Chrome DevTools debugger. +2. Insert debug statements by calling the helper functions in your code--for example: + + ```js + import { debugLog, debugBreak, debugInspect } from './utils/debug-helpers.js'; + + const data = debugInspect(someData, 'Data'); + debugLog('Processing data', 'myFunction'); + + function processData() { + // Add a breakpoint that works with DevTools + debugBreak(); + + // Your existing code... + } + ``` + +3. Start Hugo in development mode--for example: + + ```bash + yarn hugo server + ``` + +4. In VS Code, go to Run > Start Debugging, and select the "Debug JS (debug-helpers)" configuration. + +Your system uses the configuration in `launch.json` to launch the site in Chrome +and attach the debugger to the Developer Tools console. + +Make sure to remove the debug statements before merging your changes. +The debug helpers are designed to be used in development and should not be used in production. diff --git a/.gitignore b/.gitignore index 20fef5ab8..d34fa2f89 100644 --- a/.gitignore +++ b/.gitignore @@ -15,11 +15,13 @@ node_modules !telegraf-build/templates !telegraf-build/scripts !telegraf-build/README.md +/cypress/downloads /cypress/screenshots/* /cypress/videos/* test-results.xml /influxdb3cli-build-scripts/content .vscode/* +!.vscode/launch.json .idea **/config.toml package-lock.json diff --git a/.prettierignore b/.prettierignore index 004c23fb4..b7974b235 100644 --- a/.prettierignore +++ b/.prettierignore @@ -3,3 +3,4 @@ **/.svn **/.hg **/node_modules +assets/jsconfig.json \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 000000000..9aacd8f89 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,47 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Debug JS (debug-helpers)", + "type": "chrome", + "request": "launch", + "url": "http://localhost:1313", + "webRoot": "${workspaceFolder}", + "skipFiles": [ + "/**" + ], + "sourceMaps": false, + "trace": true, + "smartStep": false + }, + { + "name": "Debug JS (source maps)", + "type": "chrome", + "request": "launch", + "url": "http://localhost:1313", + "webRoot": "${workspaceFolder}", + "sourceMaps": true, + "sourceMapPathOverrides": { + "*": "${webRoot}/assets/js/*", + "main.js": "${webRoot}/assets/js/main.js", + "page-context.js": "${webRoot}/assets/js/page-context.js", + "ask-ai-trigger.js": "${webRoot}/assets/js/ask-ai-trigger.js", + "ask-ai.js": "${webRoot}/assets/js/ask-ai.js", + "utils/*": "${webRoot}/assets/js/utils/*", + "services/*": "${webRoot}/assets/js/services/*" + }, + "skipFiles": [ + "/**", + "node_modules/**", + "chrome-extension://**" + ], + "trace": true, + "smartStep": true, + "disableNetworkCache": true, + "userDataDir": "${workspaceFolder}/.vscode/chrome-user-data", + "runtimeArgs": [ + "--disable-features=VizDisplayCompositor" + ] + }, + ] +} \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 479578424..b2a6bdee3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1667,7 +1667,7 @@ The shortcode takes a regular expression for matching placeholder names. Use the `code-placeholder-key` shortcode to format the placeholder names in text that describes the placeholder--for example: -``` +```markdown {{% code-placeholders "DATABASE_NAME|USERNAME|PASSWORD_OR_TOKEN|API_TOKEN|exampleuser@influxdata.com" %}} ```sh curl --request POST http://localhost:8086/write?db=DATABASE_NAME \ @@ -1691,3 +1691,83 @@ InfluxDB API documentation when documentation is deployed. Redoc generates HTML documentation using the InfluxDB `swagger.yml`. For more information about generating InfluxDB API documentation, see the [API Documentation README](https://github.com/influxdata/docs-v2/tree/master/api-docs#readme). + +## JavaScript in the documentation UI + +The InfluxData documentation UI uses JavaScript with ES6+ syntax and +`assets/js/main.js` as the entry point to import modules from +`assets/js`. +Only `assets/js/main.js` should be imported in HTML files. + +`assets/js/main.js` registers components and initializes them on page load. + +If you're adding UI functionality that requires JavaScript, follow these steps: + +1. In your HTML file, add a `data-component` attribute to the element that + should be initialized by your JavaScript code. For example: + + ```html +
+ ``` + +2. Following the component pattern, create a single-purpose JavaScript module + (`assets/js/components/my-component.js`) + that exports a single function that receives the component element and initializes it. +3. In `assets/js/main.js`, import the module and register the component to ensure + the component is initialized on page load. + +### Debugging JavaScript + +To debug JavaScript code used in the InfluxData documentation UI, choose one of the following methods: + +- Use source maps and the Chrome DevTools debugger. +- Use debug helpers that provide breakpoints and console logging as a workaround or alternative for using source maps and the Chrome DevTools debugger. + +#### Using source maps and Chrome DevTools debugger + +1. In VS Code, select Run > Start Debugging. +2. Select the "Debug Docs (source maps)" configuration. +3. Click the play button to start the debugger. +5. Set breakpoints in the JavaScript source files--files in the + `assets/js/ns-hugo-imp:` namespace-- in the + VS Code editor or in the Chrome Developer Tools Sources panel: + + - In the VS Code Debugger panel > "Loaded Scripts" section, find the + `assets/js/ns-hugo-imp:` namespace. + - In the Chrome Developer Tools Sources panel, expand + `js/ns-hugo-imp://assets/js/`. + +#### Using debug helpers + +1. In your JavaScript module, import debug helpers from `assets/js/utils/debug-helpers.js`. + These helpers provide breakpoints and console logging as a workaround or alternative for + using source maps and the Chrome DevTools debugger. +2. Insert debug statements by calling the helper functions in your code--for example: + + ```js + import { debugLog, debugBreak, debugInspect } from './utils/debug-helpers.js'; + + const data = debugInspect(someData, 'Data'); + debugLog('Processing data', 'myFunction'); + + function processData() { + // Add a breakpoint that works with DevTools + debugBreak(); + + // Your existing code... + } + ``` + +3. Start Hugo in development mode--for example: + + ```bash + yarn hugo server + ``` + +4. In VS Code, go to Run > Start Debugging, and select the "Debug JS (debug-helpers)" configuration. + +Your system uses the configuration in `launch.json` to launch the site in Chrome +and attach the debugger to the Developer Tools console. + +Make sure to remove the debug statements before merging your changes. +The debug helpers are designed to be used in development and should not be used in production. diff --git a/api-docs/influxdb3/core/v3/ref.yml b/api-docs/influxdb3/core/v3/ref.yml index 0c320aada..3f4a738e8 100644 --- a/api-docs/influxdb3/core/v3/ref.yml +++ b/api-docs/influxdb3/core/v3/ref.yml @@ -146,15 +146,15 @@ tags: description: | Manage Processing engine triggers, test plugins, and send requests to trigger On Request plugins. - InfluxDB 3 Core provides the InfluxDB 3 Processing engine, an embedded Python VM that can dynamically load and trigger Python plugins in response to events in your database. + InfluxDB 3 Core provides the InfluxDB 3 processing engine, an embedded Python VM that can dynamically load and trigger Python plugins in response to events in your database. Use Processing engine plugins and triggers to run code and perform tasks for different database events. - To get started with the Processing engine, see the [Processing engine and Python plugins](/influxdb3/core/processing-engine/) guide. + To get started with the processing engine, see the [Processing engine and Python plugins](/influxdb3/core/processing-engine/) guide. - name: Query data description: Query data using SQL or InfluxQL - name: Quick start description: | - 1. [Create an admin token](#section/Authentication) for the InfluxDB 3 Core API. + 1. [Create an admin token](#section/Authentication) to authorize API requests. ```bash curl -X POST "http://localhost:8181/api/v3/configure/token/admin" @@ -385,12 +385,7 @@ paths: parameters: - $ref: '#/components/parameters/dbWriteParam' - $ref: '#/components/parameters/accept_partial' - - name: precision - in: query - required: true - schema: - $ref: '#/components/schemas/PrecisionWrite' - description: Precision of timestamps. + - $ref: '#/components/parameters/precisionParam' - name: no_sync in: query schema: @@ -440,16 +435,8 @@ paths: description: Executes an SQL query to retrieve data from the specified database. parameters: - $ref: '#/components/parameters/db' - - name: q - in: query - required: true - schema: - type: string - - name: format - in: query - required: false - schema: - type: string + - $ref: '#/components/parameters/querySqlParam' + - $ref: '#/components/parameters/format' - $ref: '#/components/parameters/AcceptQueryHeader' - $ref: '#/components/parameters/ContentType' responses: @@ -1072,15 +1059,104 @@ paths: post: operationId: PostConfigureProcessingEngineTrigger summary: Create processing engine trigger - description: Creates a new processing engine trigger. + description: | + Creates a processing engine trigger with the specified plugin file and trigger specification. + + ### Related guides + + - [Processing engine and Python plugins](/influxdb3/core/plugins/) requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ProcessingEngineTriggerRequest' + examples: + schedule_cron: + summary: Schedule trigger using cron + description: | + In `"cron:CRON_EXPRESSION"`, `CRON_EXPRESSION` uses extended 6-field cron format. + The cron expression `0 0 6 * * 1-5` means the trigger will run at 6:00 AM every weekday (Monday to Friday). + value: + db: DATABASE_NAME + plugin_filename: schedule.py + trigger_name: schedule_cron_trigger + trigger_specification: cron:0 0 6 * * 1-5 + schedule_every: + summary: Schedule trigger using interval + description: | + In `"every:DURATION"`, `DURATION` specifies the interval between trigger executions. + The duration `1h` means the trigger will run every hour. + value: + db: mydb + plugin_filename: schedule.py + trigger_name: schedule_every_trigger + trigger_specification: every:1h + schedule_every_seconds: + summary: Schedule trigger using seconds interval + description: | + Example of scheduling a trigger to run every 30 seconds. + value: + db: mydb + plugin_filename: schedule.py + trigger_name: schedule_every_30s_trigger + trigger_specification: every:30s + schedule_every_minutes: + summary: Schedule trigger using minutes interval + description: | + Example of scheduling a trigger to run every 5 minutes. + value: + db: mydb + plugin_filename: schedule.py + trigger_name: schedule_every_5m_trigger + trigger_specification: every:5m + all_tables: + summary: All tables trigger example + description: | + Trigger that fires on write events to any table in the database. + value: + db: mydb + plugin_filename: all_tables.py + trigger_name: all_tables_trigger + trigger_specification: all_tables + table_specific: + summary: Table-specific trigger example + description: | + Trigger that fires on write events to a specific table. + value: + db: mydb + plugin_filename: table.py + trigger_name: table_trigger + trigger_specification: table:sensors + api_request: + summary: On-demand request trigger example + description: | + Creates an HTTP endpoint `/api/v3/engine/hello-world` for manual invocation. + value: + db: mydb + plugin_filename: request.py + trigger_name: hello_world_trigger + trigger_specification: path:hello-world + cron_friday_afternoon: + summary: Cron trigger for Friday afternoons + description: | + Example of a cron trigger that runs every Friday at 2:30 PM. + value: + db: reports + plugin_filename: weekly_report.py + trigger_name: friday_report_trigger + trigger_specification: cron:0 30 14 * * 5 + cron_monthly: + summary: Cron trigger for monthly execution + description: | + Example of a cron trigger that runs on the first day of every month at midnight. + value: + db: monthly_data + plugin_filename: monthly_cleanup.py + trigger_name: monthly_cleanup_trigger + trigger_specification: cron:0 0 0 1 * * responses: - '201': + '200': description: Success. Processing engine trigger created. '400': description: Bad request. @@ -1157,7 +1233,7 @@ paths: $ref: '#/components/schemas/ProcessingEngineTriggerRequest' responses: '200': - description: Success. The processing engine trigger has been enabled. + description: Success. The processing engine trigger is enabled. '400': description: Bad request. '401': @@ -1170,7 +1246,14 @@ paths: post: operationId: PostInstallPluginPackages summary: Install plugin packages - description: Installs packages for the plugin environment. + description: | + Installs the specified Python packages into the processing engine plugin environment. + + This endpoint is synchronous and blocks until the packages are installed. + + ### Related guides + + - [Processing engine and Python plugins](/influxdb3/core/plugins/) parameters: - $ref: '#/components/parameters/ContentType' requestBody: @@ -1179,10 +1262,30 @@ paths: application/json: schema: type: object - additionalProperties: true + properties: + packages: + type: array + items: + type: string + description: | + A list of Python package names to install. + Can include version specifiers (e.g., "scipy==1.9.0"). + example: + - influxdb3-python + - scipy + - pandas==1.5.0 + - requests + required: + - packages + example: + packages: + - influxdb3-python + - scipy + - pandas==1.5.0 + - requests responses: '200': - description: Success. The packages have been installed. + description: Success. The packages are installed. '400': description: Bad request. '401': @@ -1193,7 +1296,15 @@ paths: post: operationId: PostInstallPluginRequirements summary: Install plugin requirements - description: Installs requirements for the plugin environment. + description: | + Installs requirements from a requirements file (also known as a "pip requirements file") into the processing engine plugin environment. + + This endpoint is synchronous and blocks until the requirements are installed. + + ### Related + + - [Processing engine and Python plugins](/influxdb3/core/plugins/) + - [Python requirements file format](https://pip.pypa.io/en/stable/reference/requirements-file-format/) parameters: - $ref: '#/components/parameters/ContentType' requestBody: @@ -1202,7 +1313,17 @@ paths: application/json: schema: type: object - additionalProperties: true + properties: + requirements_location: + type: string + description: | + The path to the requirements file containing Python packages to install. + Can be a relative path (relative to the plugin directory) or an absolute path. + example: requirements.txt + required: + - requirements_location + example: + requirements_location: requirements.txt responses: '200': description: Success. The requirements have been installed. @@ -1248,18 +1369,18 @@ paths: parameters: - name: plugin_path description: | - The path configured in the `trigger-spec` for the plugin. + The path configured in the request trigger specification "path:"` for the plugin. For example, if you define a trigger with the following: - ``` - trigger-spec: "request:hello-world" + ```json + trigger-spec: "path:hello-world" ``` then, the HTTP API exposes the following plugin endpoint: ``` - /api/v3/engine/hello-world + /api/v3/engine/hello-world ``` in: path required: true @@ -1269,7 +1390,7 @@ paths: operationId: GetProcessingEnginePluginRequest summary: On Request processing engine plugin request description: | - Sends a request to invoke an _On Request_ processing engine plugin. + Executes the On Request processing engine plugin specified in ``. The request can include request headers, query string parameters, and a request body, which InfluxDB passes to the plugin. An On Request plugin implements the following signature: @@ -1296,7 +1417,7 @@ paths: operationId: PostProcessingEnginePluginRequest summary: On Request processing engine plugin request description: | - Sends a request to invoke an _On Request_ processing engine plugin. + Executes the On Request processing engine plugin specified in ``. The request can include request headers, query string parameters, and a request body, which InfluxDB passes to the plugin. An On Request plugin implements the following signature: @@ -1335,8 +1456,6 @@ paths: description: | Creates an admin token. An admin token is a special type of token that has full access to all resources in the system. - - This endpoint is only available in InfluxDB 3 Enterprise. responses: '201': description: | @@ -1357,8 +1476,6 @@ paths: summary: Regenerate admin token description: | Regenerates an admin token and revokes the previous token with the same name. - - This endpoint is only available in InfluxDB 3 Enterprise. parameters: [] responses: '201': @@ -1429,7 +1546,6 @@ components: schema: type: string description: | - The name of the database. The name of the database. InfluxDB creates the database if it doesn't already exist, and then writes all points in the batch to the database. @@ -1747,15 +1863,69 @@ components: type: string plugin_filename: type: string + description: | + The path and filename of the plugin to execute--for example, + `schedule.py` or `endpoints/report.py`. + The path can be absolute or relative to the `--plugins-dir` directory configured when starting InfluxDB 3. + + The plugin file must implement the trigger interface associated with the trigger's specification (`trigger_spec`). trigger_name: type: string trigger_specification: type: string + description: | + Specifies when and how the processing engine trigger should be invoked. + + ## Supported trigger specifications: + + ### Cron-based scheduling + Format: `cron:CRON_EXPRESSION` + + Uses extended (6-field) cron format (second minute hour day_of_month month day_of_week): + ``` + ┌───────────── second (0-59) + │ ┌───────────── minute (0-59) + │ │ ┌───────────── hour (0-23) + │ │ │ ┌───────────── day of month (1-31) + │ │ │ │ ┌───────────── month (1-12) + │ │ │ │ │ ┌───────────── day of week (0-6, Sunday=0) + │ │ │ │ │ │ + * * * * * * + ``` + Examples: + - `cron:0 0 6 * * 1-5` - Every weekday at 6:00 AM + - `cron:0 30 14 * * 5` - Every Friday at 2:30 PM + - `cron:0 0 0 1 * *` - First day of every month at midnight + + ### Interval-based scheduling + Format: `every:DURATION` + + Supported durations: `s` (seconds), `m` (minutes), `h` (hours), `d` (days): + - `every:30s` - Every 30 seconds + - `every:5m` - Every 5 minutes + - `every:1h` - Every hour + - `every:1d` - Every day + + ### Table-based triggers + - `all_tables` - Triggers on write events to any table in the database + - `table:TABLE_NAME` - Triggers on write events to a specific table + + ### On-demand triggers + Format: `path:ENDPOINT_NAME` + + Creates an HTTP endpoint `/api/v3/engine/ENDPOINT_NAME` for manual invocation: + - `path:hello-world` - Creates endpoint `/api/v3/engine/hello-world` + - `path:data-export` - Creates endpoint `/api/v3/engine/data-export` + pattern: ^(cron:[0-9 *,/-]+|every:[0-9]+[smhd]|all_tables|table:[a-zA-Z_][a-zA-Z0-9_]*|path:[a-zA-Z0-9_-]+)$ + example: cron:0 0 6 * * 1-5 trigger_arguments: type: object additionalProperties: true + description: Optional arguments passed to the plugin. disabled: type: boolean + default: false + description: Whether the trigger is disabled. required: - db - plugin_filename @@ -1879,8 +2049,6 @@ components: scheme: bearer bearerFormat: JWT description: | - _During Alpha release, an API token is not required._ - A Bearer token for authentication. Provide the scheme and the API token in the `Authorization` header--for example: diff --git a/api-docs/influxdb3/enterprise/v3/ref.yml b/api-docs/influxdb3/enterprise/v3/ref.yml index a02ae5865..9f1a7fca1 100644 --- a/api-docs/influxdb3/enterprise/v3/ref.yml +++ b/api-docs/influxdb3/enterprise/v3/ref.yml @@ -146,15 +146,15 @@ tags: description: | Manage Processing engine triggers, test plugins, and send requests to trigger On Request plugins. - InfluxDB 3 Enterprise provides the InfluxDB 3 Processing engine, an embedded Python VM that can dynamically load and trigger Python plugins in response to events in your database. + InfluxDB 3 Enterprise provides the InfluxDB 3 processing engine, an embedded Python VM that can dynamically load and trigger Python plugins in response to events in your database. Use Processing engine plugins and triggers to run code and perform tasks for different database events. - To get started with the Processing engine, see the [Processing engine and Python plugins](/influxdb3/enterprise/processing-engine/) guide. + To get started with the processing engine, see the [Processing engine and Python plugins](/influxdb3/enterprise/processing-engine/) guide. - name: Query data description: Query data using SQL or InfluxQL - name: Quick start description: | - 1. [Create an admin token](#section/Authentication) for the InfluxDB 3 Enterprise API. + 1. [Create an admin token](#section/Authentication) to authorize API requests. ```bash curl -X POST "http://localhost:8181/api/v3/configure/token/admin" @@ -385,12 +385,7 @@ paths: parameters: - $ref: '#/components/parameters/dbWriteParam' - $ref: '#/components/parameters/accept_partial' - - name: precision - in: query - required: true - schema: - $ref: '#/components/schemas/PrecisionWrite' - description: Precision of timestamps. + - $ref: '#/components/parameters/precisionParam' - name: no_sync in: query schema: @@ -440,16 +435,8 @@ paths: description: Executes an SQL query to retrieve data from the specified database. parameters: - $ref: '#/components/parameters/db' - - name: q - in: query - required: true - schema: - type: string - - name: format - in: query - required: false - schema: - type: string + - $ref: '#/components/parameters/querySqlParam' + - $ref: '#/components/parameters/format' - $ref: '#/components/parameters/AcceptQueryHeader' - $ref: '#/components/parameters/ContentType' responses: @@ -1072,15 +1059,104 @@ paths: post: operationId: PostConfigureProcessingEngineTrigger summary: Create processing engine trigger - description: Creates a new processing engine trigger. + description: | + Creates a processing engine trigger with the specified plugin file and trigger specification. + + ### Related guides + + - [Processing engine and Python plugins](/influxdb3/enterprise/plugins/) requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ProcessingEngineTriggerRequest' + examples: + schedule_cron: + summary: Schedule trigger using cron + description: | + In `"cron:CRON_EXPRESSION"`, `CRON_EXPRESSION` uses extended 6-field cron format. + The cron expression `0 0 6 * * 1-5` means the trigger will run at 6:00 AM every weekday (Monday to Friday). + value: + db: DATABASE_NAME + plugin_filename: schedule.py + trigger_name: schedule_cron_trigger + trigger_specification: cron:0 0 6 * * 1-5 + schedule_every: + summary: Schedule trigger using interval + description: | + In `"every:DURATION"`, `DURATION` specifies the interval between trigger executions. + The duration `1h` means the trigger will run every hour. + value: + db: mydb + plugin_filename: schedule.py + trigger_name: schedule_every_trigger + trigger_specification: every:1h + schedule_every_seconds: + summary: Schedule trigger using seconds interval + description: | + Example of scheduling a trigger to run every 30 seconds. + value: + db: mydb + plugin_filename: schedule.py + trigger_name: schedule_every_30s_trigger + trigger_specification: every:30s + schedule_every_minutes: + summary: Schedule trigger using minutes interval + description: | + Example of scheduling a trigger to run every 5 minutes. + value: + db: mydb + plugin_filename: schedule.py + trigger_name: schedule_every_5m_trigger + trigger_specification: every:5m + all_tables: + summary: All tables trigger example + description: | + Trigger that fires on write events to any table in the database. + value: + db: mydb + plugin_filename: all_tables.py + trigger_name: all_tables_trigger + trigger_specification: all_tables + table_specific: + summary: Table-specific trigger example + description: | + Trigger that fires on write events to a specific table. + value: + db: mydb + plugin_filename: table.py + trigger_name: table_trigger + trigger_specification: table:sensors + api_request: + summary: On-demand request trigger example + description: | + Creates an HTTP endpoint `/api/v3/engine/hello-world` for manual invocation. + value: + db: mydb + plugin_filename: request.py + trigger_name: hello_world_trigger + trigger_specification: path:hello-world + cron_friday_afternoon: + summary: Cron trigger for Friday afternoons + description: | + Example of a cron trigger that runs every Friday at 2:30 PM. + value: + db: reports + plugin_filename: weekly_report.py + trigger_name: friday_report_trigger + trigger_specification: cron:0 30 14 * * 5 + cron_monthly: + summary: Cron trigger for monthly execution + description: | + Example of a cron trigger that runs on the first day of every month at midnight. + value: + db: monthly_data + plugin_filename: monthly_cleanup.py + trigger_name: monthly_cleanup_trigger + trigger_specification: cron:0 0 0 1 * * responses: - '201': + '200': description: Success. Processing engine trigger created. '400': description: Bad request. @@ -1157,7 +1233,7 @@ paths: $ref: '#/components/schemas/ProcessingEngineTriggerRequest' responses: '200': - description: Success. The processing engine trigger has been enabled. + description: Success. The processing engine trigger is enabled. '400': description: Bad request. '401': @@ -1170,7 +1246,14 @@ paths: post: operationId: PostInstallPluginPackages summary: Install plugin packages - description: Installs packages for the plugin environment. + description: | + Installs the specified Python packages into the processing engine plugin environment. + + This endpoint is synchronous and blocks until the packages are installed. + + ### Related guides + + - [Processing engine and Python plugins](/influxdb3/enterprise/plugins/) parameters: - $ref: '#/components/parameters/ContentType' requestBody: @@ -1179,10 +1262,30 @@ paths: application/json: schema: type: object - additionalProperties: true + properties: + packages: + type: array + items: + type: string + description: | + A list of Python package names to install. + Can include version specifiers (e.g., "scipy==1.9.0"). + example: + - influxdb3-python + - scipy + - pandas==1.5.0 + - requests + required: + - packages + example: + packages: + - influxdb3-python + - scipy + - pandas==1.5.0 + - requests responses: '200': - description: Success. The packages have been installed. + description: Success. The packages are installed. '400': description: Bad request. '401': @@ -1193,7 +1296,15 @@ paths: post: operationId: PostInstallPluginRequirements summary: Install plugin requirements - description: Installs requirements for the plugin environment. + description: | + Installs requirements from a requirements file (also known as a "pip requirements file") into the processing engine plugin environment. + + This endpoint is synchronous and blocks until the requirements are installed. + + ### Related + + - [Processing engine and Python plugins](/influxdb3/enterprise/plugins/) + - [Python requirements file format](https://pip.pypa.io/en/stable/reference/requirements-file-format/) parameters: - $ref: '#/components/parameters/ContentType' requestBody: @@ -1202,7 +1313,17 @@ paths: application/json: schema: type: object - additionalProperties: true + properties: + requirements_location: + type: string + description: | + The path to the requirements file containing Python packages to install. + Can be a relative path (relative to the plugin directory) or an absolute path. + example: requirements.txt + required: + - requirements_location + example: + requirements_location: requirements.txt responses: '200': description: Success. The requirements have been installed. @@ -1248,18 +1369,18 @@ paths: parameters: - name: plugin_path description: | - The path configured in the `trigger-spec` for the plugin. + The path configured in the request trigger specification "path:"` for the plugin. For example, if you define a trigger with the following: - ``` - trigger-spec: "request:hello-world" + ```json + trigger-spec: "path:hello-world" ``` then, the HTTP API exposes the following plugin endpoint: ``` - /api/v3/engine/hello-world + /api/v3/engine/hello-world ``` in: path required: true @@ -1269,7 +1390,7 @@ paths: operationId: GetProcessingEnginePluginRequest summary: On Request processing engine plugin request description: | - Sends a request to invoke an _On Request_ processing engine plugin. + Executes the On Request processing engine plugin specified in ``. The request can include request headers, query string parameters, and a request body, which InfluxDB passes to the plugin. An On Request plugin implements the following signature: @@ -1296,7 +1417,7 @@ paths: operationId: PostProcessingEnginePluginRequest summary: On Request processing engine plugin request description: | - Sends a request to invoke an _On Request_ processing engine plugin. + Executes the On Request processing engine plugin specified in ``. The request can include request headers, query string parameters, and a request body, which InfluxDB passes to the plugin. An On Request plugin implements the following signature: @@ -1448,7 +1569,6 @@ components: schema: type: string description: | - The name of the database. The name of the database. InfluxDB creates the database if it doesn't already exist, and then writes all points in the batch to the database. @@ -1804,15 +1924,69 @@ components: type: string plugin_filename: type: string + description: | + The path and filename of the plugin to execute--for example, + `schedule.py` or `endpoints/report.py`. + The path can be absolute or relative to the `--plugins-dir` directory configured when starting InfluxDB 3. + + The plugin file must implement the trigger interface associated with the trigger's specification (`trigger_spec`). trigger_name: type: string trigger_specification: type: string + description: | + Specifies when and how the processing engine trigger should be invoked. + + ## Supported trigger specifications: + + ### Cron-based scheduling + Format: `cron:CRON_EXPRESSION` + + Uses extended (6-field) cron format (second minute hour day_of_month month day_of_week): + ``` + ┌───────────── second (0-59) + │ ┌───────────── minute (0-59) + │ │ ┌───────────── hour (0-23) + │ │ │ ┌───────────── day of month (1-31) + │ │ │ │ ┌───────────── month (1-12) + │ │ │ │ │ ┌───────────── day of week (0-6, Sunday=0) + │ │ │ │ │ │ + * * * * * * + ``` + Examples: + - `cron:0 0 6 * * 1-5` - Every weekday at 6:00 AM + - `cron:0 30 14 * * 5` - Every Friday at 2:30 PM + - `cron:0 0 0 1 * *` - First day of every month at midnight + + ### Interval-based scheduling + Format: `every:DURATION` + + Supported durations: `s` (seconds), `m` (minutes), `h` (hours), `d` (days): + - `every:30s` - Every 30 seconds + - `every:5m` - Every 5 minutes + - `every:1h` - Every hour + - `every:1d` - Every day + + ### Table-based triggers + - `all_tables` - Triggers on write events to any table in the database + - `table:TABLE_NAME` - Triggers on write events to a specific table + + ### On-demand triggers + Format: `path:ENDPOINT_NAME` + + Creates an HTTP endpoint `/api/v3/engine/ENDPOINT_NAME` for manual invocation: + - `path:hello-world` - Creates endpoint `/api/v3/engine/hello-world` + - `path:data-export` - Creates endpoint `/api/v3/engine/data-export` + pattern: ^(cron:[0-9 *,/-]+|every:[0-9]+[smhd]|all_tables|table:[a-zA-Z_][a-zA-Z0-9_]*|path:[a-zA-Z0-9_-]+)$ + example: cron:0 0 6 * * 1-5 trigger_arguments: type: object additionalProperties: true + description: Optional arguments passed to the plugin. disabled: type: boolean + default: false + description: Whether the trigger is disabled. required: - db - plugin_filename diff --git a/assets/js/api-libs.js b/assets/js/api-libs.js index 17cb76c85..edfbdebe0 100644 --- a/assets/js/api-libs.js +++ b/assets/js/api-libs.js @@ -2,7 +2,7 @@ ///////////////// Preferred Client Library programming language /////////////// //////////////////////////////////////////////////////////////////////////////// import { activateTabs, updateBtnURLs } from './tabbed-content.js'; -import { getPreference, setPreference } from './local-storage.js'; +import { getPreference, setPreference } from './services/local-storage.js'; function getVisitedApiLib() { const path = window.location.pathname.match( diff --git a/assets/js/ask-ai.js b/assets/js/ask-ai.js index 292fb0a4c..f315711a2 100644 --- a/assets/js/ask-ai.js +++ b/assets/js/ask-ai.js @@ -8,29 +8,31 @@ function setUser(userid, email) { window[NAMESPACE] = { user: { uniqueClientId: userid, - email: email, - } - } + email: email, + }, + }; } // Initialize the chat widget -function initializeChat({onChatLoad, chatAttributes}) { - /* See https://docs.kapa.ai/integrations/website-widget/configuration for +function initializeChat({ onChatLoad, chatAttributes }) { + /* See https://docs.kapa.ai/integrations/website-widget/configuration for * available configuration options. * All values are strings. */ - // If you make changes to data attributes here, you also need to port the changes to the api-docs/template.hbs API reference template. + // If you make changes to data attributes here, you also need to + // port the changes to the api-docs/template.hbs API reference template. const requiredAttributes = { websiteId: 'a02bca75-1dd3-411e-95c0-79ee1139be4d', projectName: 'InfluxDB', projectColor: '#020a47', projectLogo: '/img/influx-logo-cubo-white.png', - } + }; const optionalAttributes = { - - modalDisclaimer: 'This AI can access [documentation for InfluxDB, clients, and related tools](https://docs.influxdata.com). Information you submit is used in accordance with our [Privacy Policy](https://www.influxdata.com/legal/privacy-policy/).', - modalExampleQuestions: 'Use Python to write data to InfluxDB 3,How do I query using SQL?,How do I use MQTT with Telegraf?', + modalDisclaimer: + 'This AI can access [documentation for InfluxDB, clients, and related tools](https://docs.influxdata.com). Information you submit is used in accordance with our [Privacy Policy](https://www.influxdata.com/legal/privacy-policy/).', + modalExampleQuestions: + 'Use Python to write data to InfluxDB 3,How do I query using SQL?,How do I use MQTT with Telegraf?', buttonHide: 'true', exampleQuestionButtonWidth: 'auto', modalOpenOnCommandK: 'true', @@ -52,28 +54,32 @@ function initializeChat({onChatLoad, chatAttributes}) { modalHeaderBorderBottom: 'none', modalTitleColor: '#fff', modalTitleFontSize: '1.25rem', - } + }; const scriptUrl = 'https://widget.kapa.ai/kapa-widget.bundle.js'; const script = document.createElement('script'); script.async = true; script.src = scriptUrl; - script.onload = function() { + script.onload = function () { onChatLoad(); window.influxdatadocs.AskAI = AskAI; }; - script.onerror = function() { + script.onerror = function () { console.error('Error loading AI chat widget script'); }; - const dataset = {...requiredAttributes, ...optionalAttributes, ...chatAttributes}; - Object.keys(dataset).forEach(key => { - // Assign dataset attributes from the object + const dataset = { + ...requiredAttributes, + ...optionalAttributes, + ...chatAttributes, + }; + Object.keys(dataset).forEach((key) => { + // Assign dataset attributes from the object script.dataset[key] = dataset[key]; }); // Check for an existing script element to remove - const oldScript= document.querySelector(`script[src="${scriptUrl}"]`); + const oldScript = document.querySelector(`script[src="${scriptUrl}"]`); if (oldScript) { oldScript.remove(); } @@ -82,22 +88,21 @@ function initializeChat({onChatLoad, chatAttributes}) { function getProductExampleQuestions() { const questions = productData?.product?.ai_sample_questions; - return questions?.join(',') || ''; + return questions?.join(',') || ''; } -/** +/** * chatParams: specify custom (for example, page-specific) attribute values for the chat, pass the dataset key-values (collected in ...chatParams). See https://docs.kapa.ai/integrations/website-widget/configuration for available configuration options. * onChatLoad: function to call when the chat widget has loaded * userid: optional, a unique user ID for the user (not currently used for public docs) -*/ + */ export default function AskAI({ userid, email, onChatLoad, ...chatParams }) { - const modalExampleQuestions = getProductExampleQuestions(); const chatAttributes = { ...(modalExampleQuestions && { modalExampleQuestions }), ...chatParams, - } - initializeChat({onChatLoad, chatAttributes}); + }; + initializeChat({ onChatLoad, chatAttributes }); if (userid) { setUser(userid, email); diff --git a/assets/js/code-controls.js b/assets/js/code-controls.js index ffdf02003..17018a8e8 100644 --- a/assets/js/code-controls.js +++ b/assets/js/code-controls.js @@ -2,7 +2,7 @@ import $ from 'jquery'; function initialize() { var codeBlockSelector = '.article--content pre'; - var codeBlocks = $(codeBlockSelector); + var $codeBlocks = $(codeBlockSelector); var appendHTML = `
@@ -15,7 +15,7 @@ function initialize() { `; // Wrap all codeblocks with a new 'codeblock' div - $(codeBlocks).each(function () { + $codeBlocks.each(function () { $(this).wrap("
"); }); @@ -68,7 +68,9 @@ function initialize() { // Trigger copy failure state lifecycle $('.copy-code').click(function () { - let text = $(this).closest('.code-controls').prevAll('pre:has(code)')[0].innerText; + let text = $(this) + .closest('.code-controls') + .prevAll('pre:has(code)')[0].innerText; const copyContent = async () => { try { @@ -90,7 +92,10 @@ Disable scrolling on the body. Disable user selection on everything but the fullscreen codeblock. */ $('.fullscreen-toggle').click(function () { - var code = $(this).closest('.code-controls').prevAll('pre:has(code)').clone(); + var code = $(this) + .closest('.code-controls') + .prevAll('pre:has(code)') + .clone(); $('#fullscreen-code-placeholder').replaceWith(code[0]); $('body').css('overflow', 'hidden'); diff --git a/assets/js/components/diagram.js b/assets/js/components/diagram.js new file mode 100644 index 000000000..17f07dbe5 --- /dev/null +++ b/assets/js/components/diagram.js @@ -0,0 +1,78 @@ +// Memoize the mermaid module import +let mermaidPromise = null; + +export default function Diagram({ component }) { + // Import mermaid.js module (memoized) + if (!mermaidPromise) { + mermaidPromise = import('mermaid'); + } + mermaidPromise + .then(({ default: mermaid }) => { + // Configure mermaid with InfluxData theming + mermaid.initialize({ + startOnLoad: false, // We'll manually call run() + theme: document.body.classList.contains('dark-theme') + ? 'dark' + : 'default', + themeVariables: { + fontFamily: 'Proxima Nova', + fontSize: '16px', + lineColor: '#22ADF6', + primaryColor: '#22ADF6', + primaryTextColor: '#545454', + secondaryColor: '#05CE78', + tertiaryColor: '#f4f5f5', + }, + securityLevel: 'loose', // Required for interactive diagrams + logLevel: 'error', + }); + + // Process the specific diagram component + try { + mermaid.run({ nodes: [component] }); + } catch (error) { + console.error('Mermaid diagram rendering error:', error); + } + + // Store reference to mermaid for theme switching + if (!window.mermaidInstances) { + window.mermaidInstances = new Map(); + } + window.mermaidInstances.set(component, mermaid); + }) + .catch((error) => { + console.error('Failed to load Mermaid library:', error); + }); + + // Listen for theme changes to refresh diagrams + const observer = new MutationObserver((mutations) => { + mutations.forEach((mutation) => { + if ( + mutation.attributeName === 'class' && + document.body.classList.contains('dark-theme') !== window.isDarkTheme + ) { + window.isDarkTheme = document.body.classList.contains('dark-theme'); + + // Reload this specific diagram with new theme + if (window.mermaidInstances?.has(component)) { + const mermaid = window.mermaidInstances.get(component); + mermaid.initialize({ + theme: window.isDarkTheme ? 'dark' : 'default', + }); + mermaid.run({ nodes: [component] }); + } + } + }); + }); + + // Watch for theme changes on body element + observer.observe(document.body, { attributes: true }); + + // Return cleanup function to be called when component is destroyed + return () => { + observer.disconnect(); + if (window.mermaidInstances?.has(component)) { + window.mermaidInstances.delete(component); + } + }; +} diff --git a/assets/js/components/doc-search.js b/assets/js/components/doc-search.js new file mode 100644 index 000000000..52e1b1f65 --- /dev/null +++ b/assets/js/components/doc-search.js @@ -0,0 +1,180 @@ +/** + * DocSearch component for InfluxData documentation + * Handles asynchronous loading and initialization of Algolia DocSearch + */ +const debug = false; // Set to true for debugging output + +export default function DocSearch({ component }) { + // Store configuration from component data attributes + const config = { + apiKey: component.getAttribute('data-api-key'), + appId: component.getAttribute('data-app-id'), + indexName: component.getAttribute('data-index-name'), + inputSelector: component.getAttribute('data-input-selector'), + searchTag: component.getAttribute('data-search-tag'), + includeFlux: component.getAttribute('data-include-flux') === 'true', + includeResources: + component.getAttribute('data-include-resources') === 'true', + debug: component.getAttribute('data-debug') === 'true', + }; + + // Initialize global object to track DocSearch state + window.InfluxDocs = window.InfluxDocs || {}; + window.InfluxDocs.search = { + initialized: false, + options: config, + }; + + // Load DocSearch asynchronously + function loadDocSearch() { + if (debug) { + console.log('Loading DocSearch script...'); + } + const script = document.createElement('script'); + script.src = + 'https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js'; + script.async = true; + script.onload = initializeDocSearch; + document.body.appendChild(script); + } + + // Initialize DocSearch after script loads + function initializeDocSearch() { + if (debug) { + console.log('Initializing DocSearch...'); + } + const multiVersion = ['influxdb']; + + // Use object-based lookups instead of conditionals for version and product names + // These can be replaced with data from productData in the future + + // Version display name mappings + const versionDisplayNames = { + cloud: 'Cloud (TSM)', + core: 'Core', + enterprise: 'Enterprise', + 'cloud-serverless': 'Cloud Serverless', + 'cloud-dedicated': 'Cloud Dedicated', + clustered: 'Clustered', + explorer: 'Explorer', + }; + + // Product display name mappings + const productDisplayNames = { + influxdb: 'InfluxDB', + influxdb3: 'InfluxDB 3', + explorer: 'InfluxDB 3 Explorer', + enterprise_influxdb: 'InfluxDB Enterprise', + flux: 'Flux', + telegraf: 'Telegraf', + chronograf: 'Chronograf', + kapacitor: 'Kapacitor', + platform: 'InfluxData Platform', + resources: 'Additional Resources', + }; + + // Initialize DocSearch with configuration + window.docsearch({ + apiKey: config.apiKey, + appId: config.appId, + indexName: config.indexName, + inputSelector: config.inputSelector, + debug: config.debug, + transformData: function (hits) { + // Format version using object lookup instead of if-else chain + function fmtVersion(version, productKey) { + if (version == null) { + return ''; + } else if (versionDisplayNames[version]) { + return versionDisplayNames[version]; + } else if (multiVersion.includes(productKey)) { + return version; + } else { + return ''; + } + } + + hits.map((hit) => { + const pathData = new URL(hit.url).pathname + .split('/') + .filter((n) => n); + const product = productDisplayNames[pathData[0]] || pathData[0]; + const version = fmtVersion(pathData[1], pathData[0]); + + hit.product = product; + hit.version = version; + hit.hierarchy.lvl0 = + hit.hierarchy.lvl0 + + ` ${product} ${version}`; + hit._highlightResult.hierarchy.lvl0.value = + hit._highlightResult.hierarchy.lvl0.value + + ` ${product} ${version}`; + }); + return hits; + }, + algoliaOptions: { + hitsPerPage: 10, + facetFilters: buildFacetFilters(config), + }, + autocompleteOptions: { + templates: { + header: + '
Search all InfluxData content ', + empty: + '

Not finding what you\'re looking for?

Search all InfluxData content
', + }, + }, + }); + + // Mark DocSearch as initialized + window.InfluxDocs.search.initialized = true; + + // Dispatch event for other components to know DocSearch is ready + window.dispatchEvent(new CustomEvent('docsearch-initialized')); + } + + /** + * Helper function to build facet filters based on config + * - Uses nested arrays for AND conditions + * - Includes space after colon in filter expressions + */ + function buildFacetFilters(config) { + if (!config.searchTag) { + return ['latest:true']; + } else if (config.includeFlux) { + // Return a nested array to match original template structure + // Note the space after each colon + return [ + [ + 'searchTag: ' + config.searchTag, + 'flux:true', + 'resources: ' + config.includeResources, + ], + ]; + } else { + // Return a nested array to match original template structure + // Note the space after each colon + return [ + [ + 'searchTag: ' + config.searchTag, + 'resources: ' + config.includeResources, + ], + ]; + } + } + + // Load DocSearch when page is idle or after a slight delay + if ('requestIdleCallback' in window) { + requestIdleCallback(loadDocSearch); + } else { + setTimeout(loadDocSearch, 500); + } + + // Return cleanup function + return function cleanup() { + // Clean up any event listeners if needed + if (debug) { + console.log('DocSearch component cleanup'); + } + }; +} diff --git a/assets/js/components/sidebar-search.js b/assets/js/components/sidebar-search.js new file mode 100644 index 000000000..f3d09fbe4 --- /dev/null +++ b/assets/js/components/sidebar-search.js @@ -0,0 +1,6 @@ +import SearchInteractions from '../utils/search-interactions.js'; + +export default function SidebarSearch({ component }) { + const searchInput = component.querySelector('.sidebar--search-field'); + SearchInteractions({ searchInput }); +} diff --git a/assets/js/custom-timestamps.js b/assets/js/custom-timestamps.js index c9e32838b..3cde0a6ad 100644 --- a/assets/js/custom-timestamps.js +++ b/assets/js/custom-timestamps.js @@ -1,7 +1,7 @@ import $ from 'jquery'; import { Datepicker } from 'vanillajs-datepicker'; import { toggleModal } from './modals.js'; -import * as localStorage from './local-storage.js'; +import * as localStorage from './services/local-storage.js'; // Placeholder start date used in InfluxDB custom timestamps const defaultStartDate = '2022-01-01'; @@ -53,65 +53,65 @@ function timeToUnixSeconds(time) { return unixSeconds; } - // Default time values in getting started sample data - const defaultTimes = [ - { - rfc3339: `${defaultStartDate}T08:00:00Z`, - unix: timeToUnixSeconds(`${defaultStartDate}T08:00:00Z`), - }, // 1641024000 - { - rfc3339: `${defaultStartDate}T09:00:00Z`, - unix: timeToUnixSeconds(`${defaultStartDate}T09:00:00Z`), - }, // 1641027600 - { - rfc3339: `${defaultStartDate}T10:00:00Z`, - unix: timeToUnixSeconds(`${defaultStartDate}T10:00:00Z`), - }, // 1641031200 - { - rfc3339: `${defaultStartDate}T11:00:00Z`, - unix: timeToUnixSeconds(`${defaultStartDate}T11:00:00Z`), - }, // 1641034800 - { - rfc3339: `${defaultStartDate}T12:00:00Z`, - unix: timeToUnixSeconds(`${defaultStartDate}T12:00:00Z`), - }, // 1641038400 - { - rfc3339: `${defaultStartDate}T13:00:00Z`, - unix: timeToUnixSeconds(`${defaultStartDate}T13:00:00Z`), - }, // 1641042000 - { - rfc3339: `${defaultStartDate}T14:00:00Z`, - unix: timeToUnixSeconds(`${defaultStartDate}T14:00:00Z`), - }, // 1641045600 - { - rfc3339: `${defaultStartDate}T15:00:00Z`, - unix: timeToUnixSeconds(`${defaultStartDate}T15:00:00Z`), - }, // 1641049200 - { - rfc3339: `${defaultStartDate}T16:00:00Z`, - unix: timeToUnixSeconds(`${defaultStartDate}T16:00:00Z`), - }, // 1641052800 - { - rfc3339: `${defaultStartDate}T17:00:00Z`, - unix: timeToUnixSeconds(`${defaultStartDate}T17:00:00Z`), - }, // 1641056400 - { - rfc3339: `${defaultStartDate}T18:00:00Z`, - unix: timeToUnixSeconds(`${defaultStartDate}T18:00:00Z`), - }, // 1641060000 - { - rfc3339: `${defaultStartDate}T19:00:00Z`, - unix: timeToUnixSeconds(`${defaultStartDate}T19:00:00Z`), - }, // 1641063600 - { - rfc3339: `${defaultStartDate}T20:00:00Z`, - unix: timeToUnixSeconds(`${defaultStartDate}T20:00:00Z`), - }, // 1641067200 - ]; +// Default time values in getting started sample data +const defaultTimes = [ + { + rfc3339: `${defaultStartDate}T08:00:00Z`, + unix: timeToUnixSeconds(`${defaultStartDate}T08:00:00Z`), + }, // 1641024000 + { + rfc3339: `${defaultStartDate}T09:00:00Z`, + unix: timeToUnixSeconds(`${defaultStartDate}T09:00:00Z`), + }, // 1641027600 + { + rfc3339: `${defaultStartDate}T10:00:00Z`, + unix: timeToUnixSeconds(`${defaultStartDate}T10:00:00Z`), + }, // 1641031200 + { + rfc3339: `${defaultStartDate}T11:00:00Z`, + unix: timeToUnixSeconds(`${defaultStartDate}T11:00:00Z`), + }, // 1641034800 + { + rfc3339: `${defaultStartDate}T12:00:00Z`, + unix: timeToUnixSeconds(`${defaultStartDate}T12:00:00Z`), + }, // 1641038400 + { + rfc3339: `${defaultStartDate}T13:00:00Z`, + unix: timeToUnixSeconds(`${defaultStartDate}T13:00:00Z`), + }, // 1641042000 + { + rfc3339: `${defaultStartDate}T14:00:00Z`, + unix: timeToUnixSeconds(`${defaultStartDate}T14:00:00Z`), + }, // 1641045600 + { + rfc3339: `${defaultStartDate}T15:00:00Z`, + unix: timeToUnixSeconds(`${defaultStartDate}T15:00:00Z`), + }, // 1641049200 + { + rfc3339: `${defaultStartDate}T16:00:00Z`, + unix: timeToUnixSeconds(`${defaultStartDate}T16:00:00Z`), + }, // 1641052800 + { + rfc3339: `${defaultStartDate}T17:00:00Z`, + unix: timeToUnixSeconds(`${defaultStartDate}T17:00:00Z`), + }, // 1641056400 + { + rfc3339: `${defaultStartDate}T18:00:00Z`, + unix: timeToUnixSeconds(`${defaultStartDate}T18:00:00Z`), + }, // 1641060000 + { + rfc3339: `${defaultStartDate}T19:00:00Z`, + unix: timeToUnixSeconds(`${defaultStartDate}T19:00:00Z`), + }, // 1641063600 + { + rfc3339: `${defaultStartDate}T20:00:00Z`, + unix: timeToUnixSeconds(`${defaultStartDate}T20:00:00Z`), + }, // 1641067200 +]; -function updateTimestamps (newStartDate, seedTimes=defaultTimes) { +function updateTimestamps(newStartDate, seedTimes = defaultTimes) { // Update the times array with replacement times - const times = seedTimes.map(x => { + const times = seedTimes.map((x) => { var newStartTimestamp = x.rfc3339.replace(/^.*T/, newStartDate + 'T'); return { @@ -178,7 +178,7 @@ function updateTimestamps (newStartDate, seedTimes=defaultTimes) { /////////////////////// MODAL INTERACTIONS / DATE PICKER /////////////////////// -function CustomTimeTrigger({component}) { +function CustomTimeTrigger({ component }) { const $component = $(component); $component .find('a[data-action="open"]:first') @@ -212,7 +212,7 @@ function CustomTimeTrigger({component}) { if (newDate != undefined) { newDate = formatDate(newDate); - + // Update the last updated timestamps with the new date // and reassign the updated times. updatedTimes = updateTimestamps(newDate, updatedTimes); diff --git a/assets/js/datetime.js b/assets/js/datetime.js index ec0f8ee2b..7c0261416 100644 --- a/assets/js/datetime.js +++ b/assets/js/datetime.js @@ -1,30 +1,54 @@ -const monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; -var date = new Date() -var currentTimestamp = date.toISOString().replace(/^(.*)(\.\d+)(Z)/, '$1$3') // 2023-01-01T12:34:56Z -var currentTime = date.toISOString().replace(/(^.*T)(.*)(Z)/, '$2') + '084216' // 12:34:56.000084216 +import $ from 'jquery'; -function currentDate(offset=0, trimTime=false) { - outputDate = new Date(date) - outputDate.setDate(outputDate.getDate() + offset) +var date = new Date(); +var currentTimestamp = date.toISOString().replace(/^(.*)(\.\d+)(Z)/, '$1$3'); // 2023-01-01T12:34:56Z + +// Microsecond offset appended to the current time string for formatting purposes +const MICROSECOND_OFFSET = '084216'; + +var currentTime = + date.toISOString().replace(/(^.*T)(.*)(Z)/, '$2') + MICROSECOND_OFFSET; // 12:34:56.000084216 +function currentDate(offset = 0, trimTime = false) { + let outputDate = new Date(date); + outputDate.setDate(outputDate.getDate() + offset); if (trimTime) { - return outputDate.toISOString().replace(/T.*$/, '') // 2023-01-01 + return outputDate.toISOString().replace(/T.*$/, ''); // 2023-01-01 } else { - return outputDate.toISOString().replace(/T.*$/, 'T00:00:00Z') // 2023-01-01T00:00:00Z + return outputDate.toISOString().replace(/T.*$/, 'T00:00:00Z'); // 2023-01-01T00:00:00Z } } function enterpriseEOLDate() { - var inTwoYears = date.setFullYear(date.getFullYear() + 2) - earliestEOL = new Date(inTwoYears) - return `${monthNames[earliestEOL.getMonth()]} ${earliestEOL.getDate()}, ${earliestEOL.getFullYear()}` + const monthNames = [ + 'January', + 'February', + 'March', + 'April', + 'May', + 'June', + 'July', + 'August', + 'September', + 'October', + 'November', + 'December', + ]; + var inTwoYears = new Date(date); + inTwoYears.setFullYear(inTwoYears.getFullYear() + 2); + let earliestEOL = new Date(inTwoYears); + return `${monthNames[earliestEOL.getMonth()]} ${earliestEOL.getDate()}, ${earliestEOL.getFullYear()}`; } -$('span.current-timestamp').text(currentTimestamp) -$('span.current-time').text(currentTime) -$('span.enterprise-eol-date').text(enterpriseEOLDate) -$('span.current-date').each(function() { - var dayOffset = parseInt($(this).attr("offset")) - var trimTime = $(this).attr("trim-time") === "true" - $(this).text(currentDate(dayOffset, trimTime)) -}) +function initialize() { + $('span.current-timestamp').text(currentTimestamp); + $('span.current-time').text(currentTime); + $('span.enterprise-eol-date').text(enterpriseEOLDate()); + $('span.current-date').each(function () { + var dayOffset = parseInt($(this).attr('offset')); + var trimTime = $(this).attr('trim-time') === 'true'; + $(this).text(currentDate(dayOffset, trimTime)); + }); +} + +export { initialize }; diff --git a/assets/js/feature-callouts.js b/assets/js/feature-callouts.js index 253b09b13..a3ad28d94 100644 --- a/assets/js/feature-callouts.js +++ b/assets/js/feature-callouts.js @@ -2,37 +2,24 @@ This feature is designed to callout new features added to the documentation CSS is required for the callout bubble to determine look and position, but the element must have the `callout` class and a unique id. - Callouts are treated as notifications and use the notification cookie API in - assets/js/cookies.js. + Callouts are treated as notifications and use the LocalStorage notification API. */ +import $ from 'jquery'; +import * as LocalStorageAPI from './services/local-storage.js'; + // Get notification ID -function getCalloutID (el) { +function getCalloutID(el) { return $(el).attr('id'); } -// Hide a callout and update the cookie with the viewed callout -function hideCallout (calloutID) { - if (!window.LocalStorageAPI.notificationIsRead(calloutID)) { - window.LocalStorageAPI.setNotificationAsRead(calloutID, 'callout'); - $(`#${calloutID}`).fadeOut(200); +// Show the url feature callouts on page load +export default function FeatureCallout({ component }) { + const calloutID = getCalloutID($(component)); + + if (!LocalStorageAPI.notificationIsRead(calloutID, 'callout')) { + $(`#${calloutID}.feature-callout`) + .fadeIn(300) + .removeClass('start-position'); } } - -// Show the url feature callouts on page load -$(document).ready(function () { - $('.feature-callout').each(function () { - const calloutID = getCalloutID($(this)); - - if (!window.LocalStorageAPI.notificationIsRead(calloutID, 'callout')) { - $(`#${calloutID}.feature-callout`) - .fadeIn(300) - .removeClass('start-position'); - } - }); -}); - -// Hide the InfluxDB URL selector callout -// $('button.url-trigger, #influxdb-url-selector .close').click(function () { -// hideCallout('influxdb-url-selector'); -// }); diff --git a/assets/js/flux-group-keys.js b/assets/js/flux-group-keys.js index 80ab46b70..60ed99b0b 100644 --- a/assets/js/flux-group-keys.js +++ b/assets/js/flux-group-keys.js @@ -1,49 +1,148 @@ -var tablesElement = $("#flux-group-keys-demo #grouped-tables") +import $ from 'jquery'; // Sample data let data = [ [ - { _time: "2021-01-01T00:00:00Z", _measurement: "example", loc: "rm1", sensorID: "A123", _field: "temp", _value: 110.3 }, - { _time: "2021-01-01T00:01:00Z", _measurement: "example", loc: "rm1", sensorID: "A123", _field: "temp", _value: 112.5 }, - { _time: "2021-01-01T00:02:00Z", _measurement: "example", loc: "rm1", sensorID: "A123", _field: "temp", _value: 111.9 } + { + _time: '2021-01-01T00:00:00Z', + _measurement: 'example', + loc: 'rm1', + sensorID: 'A123', + _field: 'temp', + _value: 110.3, + }, + { + _time: '2021-01-01T00:01:00Z', + _measurement: 'example', + loc: 'rm1', + sensorID: 'A123', + _field: 'temp', + _value: 112.5, + }, + { + _time: '2021-01-01T00:02:00Z', + _measurement: 'example', + loc: 'rm1', + sensorID: 'A123', + _field: 'temp', + _value: 111.9, + }, ], [ - { _time: "2021-01-01T00:00:00Z", _measurement: "example", loc: "rm1", sensorID: "A123", _field: "hum", _value: 73.4 }, - { _time: "2021-01-01T00:01:00Z", _measurement: "example", loc: "rm1", sensorID: "A123", _field: "hum", _value: 73.7 }, - { _time: "2021-01-01T00:02:00Z", _measurement: "example", loc: "rm1", sensorID: "A123", _field: "hum", _value: 75.1 } + { + _time: '2021-01-01T00:00:00Z', + _measurement: 'example', + loc: 'rm1', + sensorID: 'A123', + _field: 'hum', + _value: 73.4, + }, + { + _time: '2021-01-01T00:01:00Z', + _measurement: 'example', + loc: 'rm1', + sensorID: 'A123', + _field: 'hum', + _value: 73.7, + }, + { + _time: '2021-01-01T00:02:00Z', + _measurement: 'example', + loc: 'rm1', + sensorID: 'A123', + _field: 'hum', + _value: 75.1, + }, ], [ - { _time: "2021-01-01T00:00:00Z", _measurement: "example", loc: "rm2", sensorID: "B456", _field: "temp", _value: 108.2 }, - { _time: "2021-01-01T00:01:00Z", _measurement: "example", loc: "rm2", sensorID: "B456", _field: "temp", _value: 108.5 }, - { _time: "2021-01-01T00:02:00Z", _measurement: "example", loc: "rm2", sensorID: "B456", _field: "temp", _value: 109.6 } + { + _time: '2021-01-01T00:00:00Z', + _measurement: 'example', + loc: 'rm2', + sensorID: 'B456', + _field: 'temp', + _value: 108.2, + }, + { + _time: '2021-01-01T00:01:00Z', + _measurement: 'example', + loc: 'rm2', + sensorID: 'B456', + _field: 'temp', + _value: 108.5, + }, + { + _time: '2021-01-01T00:02:00Z', + _measurement: 'example', + loc: 'rm2', + sensorID: 'B456', + _field: 'temp', + _value: 109.6, + }, ], [ - { _time: "2021-01-01T00:00:00Z", _measurement: "example", loc: "rm2", sensorID: "B456", _field: "hum", _value: 71.8 }, - { _time: "2021-01-01T00:01:00Z", _measurement: "example", loc: "rm2", sensorID: "B456", _field: "hum", _value: 72.3 }, - { _time: "2021-01-01T00:02:00Z", _measurement: "example", loc: "rm2", sensorID: "B456", _field: "hum", _value: 72.1 } - ] -] + { + _time: '2021-01-01T00:00:00Z', + _measurement: 'example', + loc: 'rm2', + sensorID: 'B456', + _field: 'hum', + _value: 71.8, + }, + { + _time: '2021-01-01T00:01:00Z', + _measurement: 'example', + loc: 'rm2', + sensorID: 'B456', + _field: 'hum', + _value: 72.3, + }, + { + _time: '2021-01-01T00:02:00Z', + _measurement: 'example', + loc: 'rm2', + sensorID: 'B456', + _field: 'hum', + _value: 72.1, + }, + ], +]; // Default group key -let groupKey = ["_measurement", "loc", "sensorID", "_field"] +let groupKey = ['_measurement', 'loc', 'sensorID', '_field']; + +export default function FluxGroupKeysDemo({ component }) { + $('.column-list label').click(function () { + toggleCheckbox($(this)); + groupKey = getChecked(component); + groupData(); + buildGroupExample(component); + }); + + // Group and render tables on load + groupData(); +} // Build a table group (group key and table) using an array of objects function buildTable(inputData) { - // Build the group key string function wrapString(column, value) { - var stringColumns = ["_measurement", "loc", "sensorID", "_field"] + var stringColumns = ['_measurement', 'loc', 'sensorID', '_field']; if (stringColumns.includes(column)) { - return '"' + value + '"' + return '"' + value + '"'; } else { - return value + return value; } } - var groupKeyString = "Group key instance = [" + (groupKey.map(column => column + ": " + wrapString(column, (inputData[0])[column])) ).join(", ") + "]"; - var groupKeyLabel = document.createElement("p"); - groupKeyLabel.className = "table-group-key" - groupKeyLabel.innerHTML = groupKeyString - + var groupKeyString = + 'Group key instance = [' + + groupKey + .map((column) => column + ': ' + wrapString(column, inputData[0][column])) + .join(', ') + + ']'; + var groupKeyLabel = document.createElement('p'); + groupKeyLabel.className = 'table-group-key'; + groupKeyLabel.innerHTML = groupKeyString; // Extract column headers var columns = []; @@ -54,56 +153,57 @@ function buildTable(inputData) { } } } - + // Create the table element - var table = document.createElement("table"); - + const table = document.createElement('table'); + // Create the table header for (let i = 0; i < columns.length; i++) { var header = table.createTHead(); - var th = document.createElement("th"); + var th = document.createElement('th'); th.innerHTML = columns[i]; if (groupKey.includes(columns[i])) { - th.className = "grouped-by"; + th.className = 'grouped-by'; } header.appendChild(th); } // Add inputData to the HTML table for (let i = 0; i < inputData.length; i++) { - tr = table.insertRow(-1); + let tr = table.insertRow(-1); for (let j = 0; j < columns.length; j++) { var td = tr.insertCell(-1); td.innerHTML = inputData[i][columns[j]]; // Highlight the value if column is part of the group key if (groupKey.includes(columns[j])) { - td.className = "grouped-by"; + td.className = 'grouped-by'; } } } // Create a table group with group key and table - var tableGroup = document.createElement("div"); - tableGroup.innerHTML += groupKeyLabel.outerHTML + table.outerHTML + var tableGroup = document.createElement('div'); + tableGroup.innerHTML += groupKeyLabel.outerHTML + table.outerHTML; - return tableGroup + return tableGroup; } // Clear and rebuild all HTML tables function buildTables(data) { - existingTables = tablesElement[0] + let tablesElement = $('#flux-group-keys-demo #grouped-tables'); + let existingTables = tablesElement[0]; while (existingTables.firstChild) { existingTables.removeChild(existingTables.firstChild); } for (let i = 0; i < data.length; i++) { - var table = buildTable(data[i]) + var table = buildTable(data[i]); tablesElement.append(table); } } // Group data based on the group key and output new tables function groupData() { - let groupedData = data.flat() + let groupedData = data.flat(); function groupBy(array, f) { var groups = {}; @@ -114,20 +214,19 @@ function groupData() { }); return Object.keys(groups).map(function (group) { return groups[group]; - }) + }); } groupedData = groupBy(groupedData, function (r) { - return groupKey.map(v => r[v]); + return groupKey.map((v) => r[v]); }); buildTables(groupedData); } -// Get selected column names -var checkboxes = $("input[type=checkbox]"); - -function getChecked() { +function getChecked(component) { + // Get selected column names + var checkboxes = $(component).find('input[type=checkbox]'); var checked = []; for (var i = 0; i < checkboxes.length; i++) { var checkbox = checkboxes[i]; @@ -141,17 +240,12 @@ function toggleCheckbox(element) { } // Build example group function -function buildGroupExample() { - var columnCollection = getChecked().map(i => '"' + i + '"').join(", ") - $("pre#group-by-example")[0].innerHTML = "data\n |> group(columns: [" + columnCollection + "])"; +function buildGroupExample(component) { + var columnCollection = getChecked(component) + .map((i) => '"' + i + '"') + .join(', '); + $('pre#group-by-example')[0].innerHTML = + "data\n |> group(columns: [" + + columnCollection + + '])'; } - -$(".column-list label").click(function () { - toggleCheckbox($(this)) - groupKey = getChecked(); - groupData(); - buildGroupExample(); -}); - -// Group and render tables on load -groupData() diff --git a/assets/js/home-interactions.js b/assets/js/home-interactions.js deleted file mode 100644 index a90df14cd..000000000 --- a/assets/js/home-interactions.js +++ /dev/null @@ -1,22 +0,0 @@ -$('.exp-btn').click(function() { - var targetBtnElement = $(this).parent() - $('.exp-btn > p', targetBtnElement).fadeOut(100); - setTimeout(function() { - $('.exp-btn-links', targetBtnElement).fadeIn(200) - $('.exp-btn', targetBtnElement).addClass('open'); - $('.close-btn', targetBtnElement).fadeIn(200); - }, 100); -}) - -$('.close-btn').click(function() { - var targetBtnElement = $(this).parent().parent() - $('.exp-btn-links', targetBtnElement).fadeOut(100) - $('.exp-btn', targetBtnElement).removeClass('open'); - $(this).fadeOut(100); - setTimeout(function() { - $('p', targetBtnElement).fadeIn(100); - }, 100); -}) - -/////////////////////////////// EXPANDING BUTTONS ////////////////////////////// - diff --git a/assets/js/index.js b/assets/js/index.js deleted file mode 100644 index f63ad8b5d..000000000 --- a/assets/js/index.js +++ /dev/null @@ -1 +0,0 @@ -export * from './main.js'; diff --git a/assets/js/influxdb-url.js b/assets/js/influxdb-url.js index bed47eb94..e0f5d34d8 100644 --- a/assets/js/influxdb-url.js +++ b/assets/js/influxdb-url.js @@ -3,7 +3,6 @@ ///////////////////////// INFLUXDB URL PREFERENCE ///////////////////////////// //////////////////////////////////////////////////////////////////////////////// */ -import * as pageParams from '@params'; import { DEFAULT_STORAGE_URLS, getPreference, @@ -12,15 +11,18 @@ import { removeInfluxDBUrl, getInfluxDBUrl, getInfluxDBUrls, -} from './local-storage.js'; +} from './services/local-storage.js'; import $ from 'jquery'; import { context as PRODUCT_CONTEXT, referrerHost } from './page-context.js'; +import { influxdbUrls } from './services/influxdb-urls.js'; import { delay } from './helpers.js'; import { toggleModal } from './modals.js'; let CLOUD_URLS = []; -if (pageParams && pageParams.influxdb_urls) { - CLOUD_URLS = Object.values(pageParams.influxdb_urls.cloud.providers).flatMap((provider) => provider.regions?.map((region) => region.url)); +if (influxdbUrls?.cloud) { + CLOUD_URLS = Object.values(influxdbUrls.cloud.providers).flatMap((provider) => + provider.regions?.map((region) => region.url) + ); } export { CLOUD_URLS }; @@ -28,7 +30,7 @@ export function InfluxDBUrl() { const UNIQUE_URL_PRODUCTS = ['dedicated', 'clustered']; const IS_UNIQUE_URL_PRODUCT = UNIQUE_URL_PRODUCTS.includes(PRODUCT_CONTEXT); - // Add actual cloud URLs as needed + // Add actual cloud URLs as needed const elementSelector = '.article--content pre:not(.preserve)'; ///////////////////// Stored preference management /////////////////////// @@ -118,11 +120,12 @@ export function InfluxDBUrl() { }); } - // Retrieve the currently selected URLs from the urls local storage object. - function getUrls() { - const { cloud, oss, core, enterprise, serverless, dedicated, clustered } = getInfluxDBUrls(); - return { oss, cloud, core, enterprise, serverless, dedicated, clustered }; -} + // Retrieve the currently selected URLs from the urls local storage object. + function getUrls() { + const { cloud, oss, core, enterprise, serverless, dedicated, clustered } = + getInfluxDBUrls(); + return { oss, cloud, core, enterprise, serverless, dedicated, clustered }; + } // Retrieve the previously selected URLs from the from the urls local storage object. // This is used to update URLs whenever you switch between browser tabs. @@ -289,15 +292,17 @@ export function InfluxDBUrl() { } // Append the URL selector button to each codeblock containing a placeholder URL - function appendUrlSelector(urls={ - cloud: '', - oss: '', - core: '', - enterprise: '', - serverless: '', - dedicated: '', - clustered: '', - }) { + function appendUrlSelector( + urls = { + cloud: '', + oss: '', + core: '', + enterprise: '', + serverless: '', + dedicated: '', + clustered: '', + } + ) { const appendToUrls = Object.values(urls); const getBtnText = (context) => { @@ -315,7 +320,7 @@ export function InfluxDBUrl() { return contextText[context]; }; - appendToUrls.forEach(function (url) { + appendToUrls.forEach(function (url) { $(elementSelector).each(function () { var code = $(this).html(); if (code.includes(url)) { @@ -330,20 +335,32 @@ export function InfluxDBUrl() { }); } -//////////////////////////////////////////////////////////////////////////// -////////////////// Initialize InfluxDB URL interactions //////////////////// -//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////// + ////////////////// Initialize InfluxDB URL interactions //////////////////// + //////////////////////////////////////////////////////////////////////////// // Add the preserve tag to code blocks that shouldn't be updated addPreserve(); - const { cloud, oss, core, enterprise, serverless, dedicated, clustered } = DEFAULT_STORAGE_URLS; + const { cloud, oss, core, enterprise, serverless, dedicated, clustered } = + DEFAULT_STORAGE_URLS; // Append URL selector buttons to code blocks - appendUrlSelector({ cloud, oss, core, enterprise, serverless, dedicated, clustered }); + appendUrlSelector({ + cloud, + oss, + core, + enterprise, + serverless, + dedicated, + clustered, + }); // Update URLs on load - updateUrls({ cloud, oss, core, enterprise, serverless, dedicated, clustered }, getUrls()); + updateUrls( + { cloud, oss, core, enterprise, serverless, dedicated, clustered }, + getUrls() + ); // Set active radio button on page load setRadioButtons(getUrls()); diff --git a/assets/js/keybindings.js b/assets/js/keybindings.js index 6c8f2fcbe..50ee3a683 100644 --- a/assets/js/keybindings.js +++ b/assets/js/keybindings.js @@ -1,41 +1,58 @@ -// Dynamically update keybindings or hotkeys -function getPlatform() { - if (/Mac/.test(navigator.platform)) { - return "osx" - } else if (/Win/.test(navigator.platform)) { - return "win" - } else if (/Linux/.test(navigator.platform)) { - return "linux" - } else { - return "other" - } +import { getPlatform } from './utils/user-agent-platform.js'; +import $ from 'jquery'; + +/** + * Adds OS-specific class to component + * @param {string} osClass - OS-specific class to add + * @param {Object} options - Component options + * @param {jQuery} options.$component - jQuery element reference + */ +function addOSClass(osClass, { $component }) { + $component.addClass(osClass); } -const platform = getPlatform() +/** + * Updates keybinding display based on detected platform + * @param {Object} options - Component options + * @param {jQuery} options.$component - jQuery element reference + * @param {string} options.platform - Detected platform + */ +function updateKeyBindings({ $component, platform }) { + const osx = $component.data('osx'); + const linux = $component.data('linux'); + const win = $component.data('win'); -function addOSClass(osClass) { - $('.keybinding').addClass(osClass) -} + let keybind; -function updateKeyBindings() { - $('.keybinding').each(function() { - var osx = $(this).data("osx") - var linux = $(this).data("linux") - var win = $(this).data("win") - - if (platform === "other") { - if (win != linux) { - var keybind = '' + osx + ' for macOS, ' + linux + ' for Linux, and ' + win + ' for Windows'; - } else { - var keybind = '' + linux + ' for Linux and Windows and ' + osx + ' for macOS'; - } + if (platform === 'other') { + if (win !== linux) { + keybind = + `${osx} for macOS, ` + + `${linux} for Linux, ` + + `and ${win} for Windows`; } else { - var keybind = '' + $(this).data(platform) + '' + keybind = + `${linux} for Linux and Windows and ` + + `${osx} for macOS`; } + } else { + keybind = `${$component.data(platform)}`; + } - $(this).html(keybind) - }) + $component.html(keybind); } -addOSClass(platform) -updateKeyBindings() +/** + * Initialize and render platform-specific keybindings + * @param {Object} options - Component options + * @param {HTMLElement} options.component - DOM element + * @returns {void} + */ +export default function KeyBinding({ component }) { + // Initialize keybindings + const platform = getPlatform(); + const $component = $(component); + + addOSClass(platform, { $component }); + updateKeyBindings({ $component, platform }); +} diff --git a/assets/js/list-filters.js b/assets/js/list-filters.js index 7b008dcb6..28c818507 100644 --- a/assets/js/list-filters.js +++ b/assets/js/list-filters.js @@ -1,11 +1,15 @@ +import $ from 'jquery'; + // Count tag elements function countTag(tag) { - return $(".visible[data-tags*='" + tag + "']").length + return $(".visible[data-tags*='" + tag + "']").length; } -function getFilterCounts() { - $('#list-filters label').each(function() { - var tagName = $('input', this).attr('name').replace(/[\W/]+/, "-"); +function getFilterCounts($labels) { + $labels.each(function () { + var tagName = $('input', this) + .attr('name') + .replace(/[\W/]+/, '-'); var tagCount = countTag(tagName); $(this).attr('data-count', '(' + tagCount + ')'); if (tagCount <= 0) { @@ -13,38 +17,58 @@ function getFilterCounts() { } else { $(this).fadeTo(400, 1.0); } - }) + }); } -// Get initial filter count on page load -getFilterCounts() +/** TODO: Include the data source value in the as an additional attribute + * in the HTML and pass it into the component, which would let us use selectors + * for only the source items and let us have more than one + * list filter component per page without conflicts */ +export default function ListFilters({ component }) { + const $component = $(component); + const $labels = $component.find('label'); + const $inputs = $component.find('input'); -$("#list-filters input").click(function() { + getFilterCounts($labels); - // List of tags to hide - var tagArray = $("#list-filters input:checkbox:checked").map(function(){ - return $(this).attr('name').replace(/[\W]+/, "-"); - }).get(); + $inputs.click(function () { + // List of tags to hide + var tagArray = $component + .find('input:checkbox:checked') + .map(function () { + return $(this).attr('name').replace(/[\W]+/, '-'); + }) + .get(); - // List of tags to restore - var restoreArray = $("#list-filters input:checkbox:not(:checked)").map(function(){ - return $(this).attr('name').replace(/[\W]+/, "-"); - }).get(); + // List of tags to restore + var restoreArray = $component + .find('input:checkbox:not(:checked)') + .map(function () { + return $(this).attr('name').replace(/[\W]+/, '-'); + }) + .get(); - // Actions for filter select - if ( $(this).is(':checked') ) { - $.each( tagArray, function( index, value ) { - $(".filter-item.visible:not([data-tags~='" + value + "'])").removeClass('visible').fadeOut() - }) - } else { - $.each( restoreArray, function( index, value ) { - $(".filter-item:not(.visible)[data-tags~='" + value + "']").addClass('visible').fadeIn() - }) - $.each( tagArray, function( index, value ) { - $(".filter-item.visible:not([data-tags~='" + value + "'])").removeClass('visible').hide() - }) - } + // Actions for filter select + if ($(this).is(':checked')) { + $.each(tagArray, function (index, value) { + $(".filter-item.visible:not([data-tags~='" + value + "'])") + .removeClass('visible') + .fadeOut(); + }); + } else { + $.each(restoreArray, function (index, value) { + $(".filter-item:not(.visible)[data-tags~='" + value + "']") + .addClass('visible') + .fadeIn(); + }); + $.each(tagArray, function (index, value) { + $(".filter-item.visible:not([data-tags~='" + value + "'])") + .removeClass('visible') + .hide(); + }); + } - // Refresh filter count - getFilterCounts() -}); + // Refresh filter count + getFilterCounts($labels); + }); +} diff --git a/assets/js/main.js b/assets/js/main.js index 5c2289720..ca99dff48 100644 --- a/assets/js/main.js +++ b/assets/js/main.js @@ -1,7 +1,7 @@ // assets/js/main.js -// If you need to pass parameters from the calling Hugo page, you can import them here like so: -// import * as pageParams from '@params'; +// Import dependencies that we still need to load in the global scope +import $ from 'jquery'; /** Import modules that are not components. * TODO: Refactor these into single-purpose component modules. @@ -9,9 +9,10 @@ import * as apiLibs from './api-libs.js'; import * as codeControls from './code-controls.js'; import * as contentInteractions from './content-interactions.js'; +import * as datetime from './datetime.js'; import { delay } from './helpers.js'; import { InfluxDBUrl } from './influxdb-url.js'; -import * as localStorage from './local-storage.js'; +import * as localStorage from './services/local-storage.js'; import * as modals from './modals.js'; import * as notifications from './notifications.js'; import * as pageContext from './page-context.js'; @@ -29,8 +30,17 @@ import * as v3Wayfinding from './v3-wayfinding.js'; import AskAITrigger from './ask-ai-trigger.js'; import CodePlaceholder from './code-placeholders.js'; import { CustomTimeTrigger } from './custom-timestamps.js'; +import Diagram from './components/diagram.js'; +import DocSearch from './components/doc-search.js'; +import FeatureCallout from './feature-callouts.js'; +import FluxGroupKeysDemo from './flux-group-keys.js'; import FluxInfluxDBVersionsTrigger from './flux-influxdb-versions.js'; +import KeyBinding from './keybindings.js'; +import ListFilters from './list-filters.js'; +import ProductSelector from './version-selector.js'; +import ReleaseToc from './release-toc.js'; import { SearchButton } from './search-button.js'; +import SidebarSearch from './components/sidebar-search.js'; import { SidebarToggle } from './sidebar-toggle.js'; import Theme from './theme.js'; import ThemeSwitch from './theme-switch.js'; @@ -49,11 +59,20 @@ const componentRegistry = { 'ask-ai-trigger': AskAITrigger, 'code-placeholder': CodePlaceholder, 'custom-time-trigger': CustomTimeTrigger, + diagram: Diagram, + 'doc-search': DocSearch, + 'feature-callout': FeatureCallout, + 'flux-group-keys-demo': FluxGroupKeysDemo, 'flux-influxdb-versions-trigger': FluxInfluxDBVersionsTrigger, + keybinding: KeyBinding, + 'list-filters': ListFilters, + 'product-selector': ProductSelector, + 'release-toc': ReleaseToc, 'search-button': SearchButton, + 'sidebar-search': SidebarSearch, 'sidebar-toggle': SidebarToggle, - 'theme': Theme, - 'theme-switch': ThemeSwitch + theme: Theme, + 'theme-switch': ThemeSwitch, }; /** @@ -71,7 +90,12 @@ function initGlobals() { window.influxdatadocs.pageContext = pageContext; window.influxdatadocs.toggleModal = modals.toggleModal; window.influxdatadocs.componentRegistry = componentRegistry; - + + // Re-export jQuery to global namespace for legacy scripts + if (typeof window.jQuery === 'undefined') { + window.jQuery = window.$ = $; + } + return window.influxdatadocs; } @@ -81,32 +105,35 @@ function initGlobals() { */ function initComponents(globals) { const components = document.querySelectorAll('[data-component]'); - + components.forEach((component) => { const componentName = component.getAttribute('data-component'); const ComponentConstructor = componentRegistry[componentName]; - + if (ComponentConstructor) { // Initialize the component and store its instance in the global namespace try { const instance = ComponentConstructor({ component }); globals[componentName] = ComponentConstructor; - + // Optionally store component instances for future reference if (!globals.instances) { globals.instances = {}; } - + if (!globals.instances[componentName]) { globals.instances[componentName] = []; } - + globals.instances[componentName].push({ element: component, - instance + instance, }); } catch (error) { - console.error(`Error initializing component "${componentName}":`, error); + console.error( + `Error initializing component "${componentName}":`, + error + ); } } else { console.warn(`Unknown component: "${componentName}"`); @@ -122,6 +149,7 @@ function initModules() { apiLibs.initialize(); codeControls.initialize(); contentInteractions.initialize(); + datetime.initialize(); InfluxDBUrl(); notifications.initialize(); pageFeedback.initialize(); @@ -135,10 +163,10 @@ function initModules() { function init() { // Initialize global namespace and expose core modules const globals = initGlobals(); - + // Initialize non-component UI modules initModules(); - + // Initialize components from registry initComponents(globals); } @@ -147,4 +175,4 @@ function init() { document.addEventListener('DOMContentLoaded', init); // Export public API -export { initGlobals, componentRegistry }; \ No newline at end of file +export { initGlobals, componentRegistry }; diff --git a/assets/js/page-context.js b/assets/js/page-context.js index 4903e9a14..6779fbca2 100644 --- a/assets/js/page-context.js +++ b/assets/js/page-context.js @@ -1,34 +1,80 @@ /** This module retrieves browser context information and site data for the * current page, version, and product. */ -import { products, influxdb_urls } from '@params'; - -const safeProducts = products || {}; -const safeUrls = influxdb_urls || {}; +import { products } from './services/influxdata-products.js'; +import { influxdbUrls } from './services/influxdb-urls.js'; function getCurrentProductData() { const path = window.location.pathname; const mappings = [ - { pattern: /\/influxdb\/cloud\//, product: safeProducts.cloud, urls: safeUrls.influxdb_cloud }, - { pattern: /\/influxdb3\/core/, product: safeProducts.influxdb3_core, urls: safeUrls.core }, - { pattern: /\/influxdb3\/enterprise/, product: safeProducts.influxdb3_enterprise, urls: safeUrls.enterprise }, - { pattern: /\/influxdb3\/cloud-serverless/, product: safeProducts.influxdb3_cloud_serverless, urls: safeUrls.cloud }, - { pattern: /\/influxdb3\/cloud-dedicated/, product: safeProducts.influxdb3_cloud_dedicated, urls: safeUrls.dedicated }, - { pattern: /\/influxdb3\/clustered/, product: safeProducts.influxdb3_clustered, urls: safeUrls.clustered }, - { pattern: /\/enterprise_v1\//, product: safeProducts.enterprise_influxdb, urls: safeUrls.oss }, - { pattern: /\/influxdb.*v1\//, product: safeProducts.influxdb, urls: safeUrls.oss }, - { pattern: /\/influxdb.*v2\//, product: safeProducts.influxdb, urls: safeUrls.oss }, - { pattern: /\/kapacitor\//, product: safeProducts.kapacitor, urls: safeUrls.oss }, - { pattern: /\/telegraf\//, product: safeProducts.telegraf, urls: safeUrls.oss }, - { pattern: /\/chronograf\//, product: safeProducts.chronograf, urls: safeUrls.oss }, - { pattern: /\/flux\//, product: safeProducts.flux, urls: safeUrls.oss }, + { + pattern: /\/influxdb\/cloud\//, + product: products.cloud, + urls: influxdbUrls.influxdb_cloud, + }, + { + pattern: /\/influxdb3\/core/, + product: products.influxdb3_core, + urls: influxdbUrls.core, + }, + { + pattern: /\/influxdb3\/enterprise/, + product: products.influxdb3_enterprise, + urls: influxdbUrls.enterprise, + }, + { + pattern: /\/influxdb3\/cloud-serverless/, + product: products.influxdb3_cloud_serverless, + urls: influxdbUrls.cloud, + }, + { + pattern: /\/influxdb3\/cloud-dedicated/, + product: products.influxdb3_cloud_dedicated, + urls: influxdbUrls.dedicated, + }, + { + pattern: /\/influxdb3\/clustered/, + product: products.influxdb3_clustered, + urls: influxdbUrls.clustered, + }, + { + pattern: /\/enterprise_v1\//, + product: products.enterprise_influxdb, + urls: influxdbUrls.oss, + }, + { + pattern: /\/influxdb.*v1\//, + product: products.influxdb, + urls: influxdbUrls.oss, + }, + { + pattern: /\/influxdb.*v2\//, + product: products.influxdb, + urls: influxdbUrls.oss, + }, + { + pattern: /\/kapacitor\//, + product: products.kapacitor, + urls: influxdbUrls.oss, + }, + { + pattern: /\/telegraf\//, + product: products.telegraf, + urls: influxdbUrls.oss, + }, + { + pattern: /\/chronograf\//, + product: products.chronograf, + urls: influxdbUrls.oss, + }, + { pattern: /\/flux\//, product: products.flux, urls: influxdbUrls.oss }, ]; for (const { pattern, product, urls } of mappings) { if (pattern.test(path)) { - return { - product: product || 'unknown', - urls: urls || {} + return { + product: product || 'unknown', + urls: urls || {}, }; } } @@ -36,7 +82,8 @@ function getCurrentProductData() { return { product: 'other', urls: {} }; } -// Return the page context (cloud, serverless, oss/enterprise, dedicated, clustered, other) +// Return the page context +// (cloud, serverless, oss/enterprise, dedicated, clustered, other) function getContext() { if (/\/influxdb\/cloud\//.test(window.location.pathname)) { return 'cloud'; @@ -78,8 +125,12 @@ const context = getContext(), protocol = location.protocol, referrer = document.referrer === '' ? 'direct' : document.referrer, referrerHost = getReferrerHost(), - // TODO: Verify this still does what we want since the addition of InfluxDB 3 naming and the Core and Enterprise versions. - version = (/^v\d/.test(pathArr[1]) || pathArr[1]?.includes('cloud') ? pathArr[1].replace(/^v/, '') : "n/a") + // TODO: Verify this works since the addition of InfluxDB 3 naming + // and the Core and Enterprise versions. + version = + /^v\d/.test(pathArr[1]) || pathArr[1]?.includes('cloud') + ? pathArr[1].replace(/^v/, '') + : 'n/a'; export { context, @@ -92,4 +143,4 @@ export { referrer, referrerHost, version, -}; \ No newline at end of file +}; diff --git a/assets/js/release-toc.js b/assets/js/release-toc.js index 42858fccc..9e02ec5c4 100644 --- a/assets/js/release-toc.js +++ b/assets/js/release-toc.js @@ -1,26 +1,67 @@ /////////////////////////// Table of Contents Script /////////////////////////// /* - * This script is used to generate a table of contents for the - * release notes pages. -*/ + * This script is used to generate a table of contents for the + * release notes pages. + */ +export default function ReleaseToc({ component }) { + // Get all h2 elements that are not checkpoint-releases + const releases = Array.from(document.querySelectorAll('h2')).filter( + (el) => !el.id.match(/checkpoint-releases/) + ); -// Use jQuery filter to get an array of all the *release* h2 elements -const releases = $('h2').filter( - (_i, el) => !el.id.match(/checkpoint-releases/) -); + // Extract data about each release from the array of releases + const releaseData = releases.map((el) => ({ + name: el.textContent, + id: el.id, + class: el.getAttribute('class'), + date: el.getAttribute('date'), + })); -// Extract data about each release from the array of releases -releaseData = releases.map((_i, el) => ({ - name: el.textContent, - id: el.id, - class: el.getAttribute('class'), - date: el.getAttribute('date') -})); + // Build the release table of contents + const releaseTocUl = component.querySelector('#release-toc ul'); + releaseData.forEach((release) => { + releaseTocUl.appendChild(getReleaseItem(release)); + }); + + /* + * This script is used to expand the release notes table of contents by the + * number specified in the `show` attribute of `ul.release-list`. + * Once all the release items are visible, the "Show More" button is hidden. + */ + const showMoreBtn = component.querySelector('.show-more'); + if (showMoreBtn) { + showMoreBtn.addEventListener('click', function () { + const itemHeight = 1.885; // Item height in rem + const releaseNum = releaseData.length; + const maxHeight = releaseNum * itemHeight; + const releaseList = document.getElementById('release-list'); + const releaseIncrement = Number(releaseList.getAttribute('show')); + const currentHeightMatch = releaseList.style.height.match(/\d+\.?\d+/); + const currentHeight = currentHeightMatch + ? Number(currentHeightMatch[0]) + : 0; + const potentialHeight = currentHeight + releaseIncrement * itemHeight; + const newHeight = + potentialHeight > maxHeight ? maxHeight : potentialHeight; + + releaseList.style.height = `${newHeight}rem`; + + if (newHeight >= maxHeight) { + // Simple fade out + showMoreBtn.style.transition = 'opacity 0.1s'; + showMoreBtn.style.opacity = 0; + setTimeout(() => { + showMoreBtn.style.display = 'none'; + }, 100); + } + }); + } +} // Use release data to generate a list item for each release -getReleaseItem = (releaseData) => { - var li = document.createElement("li"); +function getReleaseItem(releaseData) { + const li = document.createElement('li'); if (releaseData.class !== null) { li.className = releaseData.class; } @@ -28,31 +69,3 @@ getReleaseItem = (releaseData) => { li.setAttribute('date', releaseData.date); return li; } - -// Use jQuery each to build the release table of contents -releaseData.each((_i, release) => { - $('#release-toc ul')[0].appendChild(getReleaseItem(release)); -}); - -/* - * This script is used to expand the release notes table of contents by the - * number specified in the `show` attribute of `ul.release-list`. - * Once all the release items are visible, the "Show More" button is hidden. -*/ -$('#release-toc .show-more').click(function () { - const itemHeight = 1.885; // Item height in rem - const releaseNum = releaseData.length; - const maxHeight = releaseNum * itemHeight; - const releaseIncrement = Number($('#release-list')[0].getAttribute('show')); - const currentHeight = Number( - $('#release-list')[0].style.height.match(/\d+\.?\d+/)[0] - ); - const potentialHeight = currentHeight + releaseIncrement * itemHeight; - const newHeight = potentialHeight > maxHeight ? maxHeight : potentialHeight; - - $('#release-list')[0].style.height = `${newHeight}rem`; - - if (newHeight >= maxHeight) { - $('#release-toc .show-more').fadeOut(100); - } -}); diff --git a/assets/js/search-interactions.js b/assets/js/search-interactions.js deleted file mode 100644 index 4f8fdd8ac..000000000 --- a/assets/js/search-interactions.js +++ /dev/null @@ -1,10 +0,0 @@ -// Fade content wrapper when focusing on search input -$('#algolia-search-input').focus(function() { - $('.content-wrapper').fadeTo(300, .35); -}) - -// Hide search dropdown when leaving search input -$('#algolia-search-input').blur(function() { - $('.content-wrapper').fadeTo(200, 1); - $('.ds-dropdown-menu').hide(); -}) diff --git a/assets/js/services/influxdata-products.js b/assets/js/services/influxdata-products.js new file mode 100644 index 000000000..eecd8aa89 --- /dev/null +++ b/assets/js/services/influxdata-products.js @@ -0,0 +1,3 @@ +import { products as productsParam } from '@params'; + +export const products = productsParam || {}; diff --git a/assets/js/services/influxdb-urls.js b/assets/js/services/influxdb-urls.js new file mode 100644 index 000000000..1d31ff67f --- /dev/null +++ b/assets/js/services/influxdb-urls.js @@ -0,0 +1,3 @@ +import { influxdb_urls as influxdbUrlsParam } from '@params'; + +export const influxdbUrls = influxdbUrlsParam || {}; diff --git a/assets/js/local-storage.js b/assets/js/services/local-storage.js similarity index 93% rename from assets/js/local-storage.js rename to assets/js/services/local-storage.js index 103685f4d..8efccde12 100644 --- a/assets/js/local-storage.js +++ b/assets/js/services/local-storage.js @@ -10,7 +10,8 @@ - messages: Messages (data/notifications.yaml) that have been seen (array) - callouts: Feature callouts that have been seen (array) */ -import * as pageParams from '@params'; + +import { influxdbUrls } from './influxdb-urls.js'; // Prefix for all InfluxData docs local storage const storagePrefix = 'influxdata_docs_'; @@ -82,14 +83,12 @@ function getPreferences() { //////////// MANAGE INFLUXDATA DOCS URLS IN LOCAL STORAGE ////////////////////// //////////////////////////////////////////////////////////////////////////////// - const defaultUrls = {}; -// Guard against pageParams being null/undefined and safely access nested properties -if (pageParams && pageParams.influxdb_urls) { - Object.entries(pageParams.influxdb_urls).forEach(([product, {providers}]) => { - defaultUrls[product] = providers.filter(provider => provider.name === 'Default')[0]?.regions[0]?.url; - }); -} +Object.entries(influxdbUrls).forEach(([product, { providers }]) => { + defaultUrls[product] = + providers.filter((provider) => provider.name === 'Default')[0]?.regions[0] + ?.url || 'https://cloud2.influxdata.com'; +}); export const DEFAULT_STORAGE_URLS = { oss: defaultUrls.oss, @@ -177,7 +176,10 @@ const defaultNotificationsObj = { function getNotifications() { // Initialize notifications data if it doesn't already exist if (localStorage.getItem(notificationStorageKey) === null) { - initializeStorageItem('notifications', JSON.stringify(defaultNotificationsObj)); + initializeStorageItem( + 'notifications', + JSON.stringify(defaultNotificationsObj) + ); } // Retrieve and parse the notifications data as JSON @@ -221,7 +223,10 @@ function setNotificationAsRead(notificationID, notificationType) { readNotifications.push(notificationID); notificationsObj[notificationType + 's'] = readNotifications; - localStorage.setItem(notificationStorageKey, JSON.stringify(notificationsObj)); + localStorage.setItem( + notificationStorageKey, + JSON.stringify(notificationsObj) + ); } // Export functions as a module and make the file backwards compatible for non-module environments until all remaining dependent scripts are ported to modules diff --git a/assets/js/sidebar-toggle.js b/assets/js/sidebar-toggle.js index 4db64db79..49af74008 100644 --- a/assets/js/sidebar-toggle.js +++ b/assets/js/sidebar-toggle.js @@ -3,7 +3,7 @@ http://www.thesitewizard.com/javascripts/change-style-sheets.shtml */ -import * as localStorage from './local-storage.js'; +import * as localStorage from './services/local-storage.js'; // *** TO BE CUSTOMISED *** var sidebar_state_preference_name = 'sidebar_state'; diff --git a/assets/js/theme-switch.js b/assets/js/theme-switch.js index 4c97c3108..c7de8552d 100644 --- a/assets/js/theme-switch.js +++ b/assets/js/theme-switch.js @@ -1,20 +1,21 @@ import Theme from './theme.js'; export default function ThemeSwitch({ component }) { - if ( component == undefined) { + if (component === undefined) { component = document; } - component.querySelectorAll(`.theme-switch-light`).forEach((button) => { - button.addEventListener('click', function(event) { + + component.querySelectorAll('.theme-switch-light').forEach((button) => { + button.addEventListener('click', function (event) { event.preventDefault(); - Theme({ style: 'light-theme' }); + Theme({ component, style: 'light-theme' }); }); }); - component.querySelectorAll(`.theme-switch-dark`).forEach((button) => { - button.addEventListener('click', function(event) { + component.querySelectorAll('.theme-switch-dark').forEach((button) => { + button.addEventListener('click', function (event) { event.preventDefault(); - Theme({ style: 'dark-theme' }); + Theme({ component, style: 'dark-theme' }); }); }); } diff --git a/assets/js/theme.js b/assets/js/theme.js index 92a6c190e..8588d44a9 100644 --- a/assets/js/theme.js +++ b/assets/js/theme.js @@ -1,4 +1,4 @@ -import { getPreference, setPreference } from './local-storage.js'; +import { getPreference, setPreference } from './services/local-storage.js'; const PROPS = { style_preference_name: 'theme', @@ -6,19 +6,22 @@ const PROPS = { style_domain: 'docs.influxdata.com', }; -function getPreferredTheme () { +function getPreferredTheme() { return `${getPreference(PROPS.style_preference_name)}-theme`; } function switchStyle({ styles_element, css_title }) { // Disable all other theme stylesheets - styles_element.querySelectorAll('link[rel*="stylesheet"][title*="theme"]') - .forEach(function (link) { - link.disabled = true; - }); + styles_element + .querySelectorAll('link[rel*="stylesheet"][title*="theme"]') + .forEach(function (link) { + link.disabled = true; + }); // Enable the stylesheet with the specified title - const link = styles_element.querySelector(`link[rel*="stylesheet"][title="${css_title}"]`); + const link = styles_element.querySelector( + `link[rel*="stylesheet"][title="${css_title}"]` + ); link && (link.disabled = false); setPreference(PROPS.style_preference_name, css_title.replace(/-theme/, '')); @@ -38,5 +41,4 @@ export default function Theme({ component, style }) { if (component.dataset?.themeCallback === 'setVisibility') { setVisibility(component); } - } diff --git a/assets/js/utils/debug-helpers.js b/assets/js/utils/debug-helpers.js new file mode 100644 index 000000000..08433e2cf --- /dev/null +++ b/assets/js/utils/debug-helpers.js @@ -0,0 +1,38 @@ +/** + * Helper functions for debugging without source maps + * Example usage: + * In your code, you can use these functions like this: + * ```javascript + * import { debugLog, debugBreak, debugInspect } from './debug-helpers.js'; + * + * const data = debugInspect(someData, 'Data'); + * debugLog('Processing data', 'myFunction'); + * + * function processData() { + * // Add a breakpoint that works with DevTools + * debugBreak(); + * + * // Your existing code... + * } + * ``` + * + * @fileoverview DEVELOPMENT USE ONLY - Functions should not be committed to production + */ + +/* eslint-disable no-debugger */ +/* eslint-disable-next-line */ +// NOTE: These functions are detected by ESLint rules to prevent committing debug code + +export function debugLog(message, context = '') { + const contextStr = context ? `[${context}]` : ''; + console.log(`DEBUG${contextStr}: ${message}`); +} + +export function debugBreak() { + debugger; +} + +export function debugInspect(value, label = 'Inspect') { + console.log(`DEBUG[${label}]:`, value); + return value; +} diff --git a/assets/js/utils/search-interactions.js b/assets/js/utils/search-interactions.js new file mode 100644 index 000000000..6a73b2535 --- /dev/null +++ b/assets/js/utils/search-interactions.js @@ -0,0 +1,107 @@ +/** + * Manages search interactions for DocSearch integration + * Uses MutationObserver to watch for dropdown creation + */ +export default function SearchInteractions({ searchInput }) { + const contentWrapper = document.querySelector('.content-wrapper'); + let observer = null; + let dropdownObserver = null; + let dropdownMenu = null; + const debug = false; // Set to true for debugging logs + + // Fade content wrapper when focusing on search input + function handleFocus() { + contentWrapper.style.opacity = '0.35'; + contentWrapper.style.transition = 'opacity 300ms'; + } + + // Hide search dropdown when leaving search input + function handleBlur(event) { + // Only process blur if not clicking within dropdown + const relatedTarget = event.relatedTarget; + if ( + relatedTarget && + (relatedTarget.closest('.algolia-autocomplete') || + relatedTarget.closest('.ds-dropdown-menu')) + ) { + return; + } + + contentWrapper.style.opacity = '1'; + contentWrapper.style.transition = 'opacity 200ms'; + + // Hide dropdown if it exists + if (dropdownMenu) { + dropdownMenu.style.display = 'none'; + } + } + + // Add event listeners + searchInput.addEventListener('focus', handleFocus); + searchInput.addEventListener('blur', handleBlur); + + // Use MutationObserver to detect when dropdown is added to the DOM + observer = new MutationObserver((mutations) => { + for (const mutation of mutations) { + if (mutation.type === 'childList') { + const newDropdown = document.querySelector( + '.ds-dropdown-menu:not([data-monitored])' + ); + if (newDropdown) { + // Save reference to dropdown + dropdownMenu = newDropdown; + newDropdown.setAttribute('data-monitored', 'true'); + + // Monitor dropdown removal/display changes + dropdownObserver = new MutationObserver((dropdownMutations) => { + for (const dropdownMutation of dropdownMutations) { + if (debug) { + if ( + dropdownMutation.type === 'attributes' && + dropdownMutation.attributeName === 'style' + ) { + console.log( + 'Dropdown style changed:', + dropdownMenu.style.display + ); + } + } + } + }); + + // Observe changes to dropdown attributes (like style) + dropdownObserver.observe(dropdownMenu, { + attributes: true, + attributeFilter: ['style'], + }); + + // Add event listeners to keep dropdown open when interacted with + dropdownMenu.addEventListener('mousedown', (e) => { + // Prevent blur on searchInput when clicking in dropdown + e.preventDefault(); + }); + } + } + } + }); + + // Start observing the document body for dropdown creation + observer.observe(document.body, { + childList: true, + subtree: true, + }); + + // Return cleanup function + return function cleanup() { + searchInput.removeEventListener('focus', handleFocus); + searchInput.removeEventListener('blur', handleBlur); + + if (observer) { + observer.disconnect(); + } + + if (dropdownObserver) { + dropdownObserver.disconnect(); + } + }; +} diff --git a/assets/js/utils/user-agent-platform.js b/assets/js/utils/user-agent-platform.js new file mode 100644 index 000000000..803f1bdf9 --- /dev/null +++ b/assets/js/utils/user-agent-platform.js @@ -0,0 +1,35 @@ +/** + * Platform detection utility functions + * Provides methods for detecting user's operating system + */ + +/** + * Detects user's operating system using modern techniques + * Falls back to userAgent parsing when newer APIs aren't available + * @returns {string} Operating system identifier ("osx", "win", "linux", or "other") + */ +export function getPlatform() { + // Try to use modern User-Agent Client Hints API first (Chrome 89+, Edge 89+) + if (navigator.userAgentData && navigator.userAgentData.platform) { + const platform = navigator.userAgentData.platform.toLowerCase(); + + if (platform.includes('mac')) return 'osx'; + if (platform.includes('win')) return 'win'; + if (platform.includes('linux')) return 'linux'; + } + + // Fall back to userAgent string parsing + const userAgent = navigator.userAgent.toLowerCase(); + + if ( + userAgent.includes('mac') || + userAgent.includes('iphone') || + userAgent.includes('ipad') + ) + return 'osx'; + if (userAgent.includes('win')) return 'win'; + if (userAgent.includes('linux') || userAgent.includes('android')) + return 'linux'; + + return 'other'; +} diff --git a/assets/js/v3-wayfinding.js b/assets/js/v3-wayfinding.js index b50c58f7f..761a19044 100644 --- a/assets/js/v3-wayfinding.js +++ b/assets/js/v3-wayfinding.js @@ -1,6 +1,14 @@ import { CLOUD_URLS } from './influxdb-url.js'; -import * as localStorage from './local-storage.js'; -import { context, host, hostname, path, protocol, referrer, referrerHost } from './page-context.js'; +import * as localStorage from './services/local-storage.js'; +import { + context, + host, + hostname, + path, + protocol, + referrer, + referrerHost, +} from './page-context.js'; /** * Builds a referrer whitelist array that includes the current page host and all @@ -69,8 +77,6 @@ function setWayfindingInputState() { } function submitWayfindingData(engine, action) { - - // Build lp using page data and engine data const lp = `ioxwayfinding,host=${hostname},path=${path},referrer=${referrer},engine=${engine} action="${action}"`; @@ -81,10 +87,7 @@ function submitWayfindingData(engine, action) { 'https://j32dswat7l.execute-api.us-east-1.amazonaws.com/prod/wayfinding' ); xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); - xhr.setRequestHeader( - 'Access-Control-Allow-Origin', - `${protocol}//${host}` - ); + xhr.setRequestHeader('Access-Control-Allow-Origin', `${protocol}//${host}`); xhr.setRequestHeader('Content-Type', 'text/plain; charset=utf-8'); xhr.setRequestHeader('Accept', 'application/json'); xhr.send(lp); diff --git a/assets/js/version-selector.js b/assets/js/version-selector.js index 51fa52c53..7d9161c87 100644 --- a/assets/js/version-selector.js +++ b/assets/js/version-selector.js @@ -1,19 +1,21 @@ -// Select the product dropdown and dropdown items -const productDropdown = document.querySelector("#product-dropdown"); -const dropdownItems = document.querySelector("#dropdown-items"); +export default function ProductSelector({ component }) { + // Select the product dropdown and dropdown items + const productDropdown = component.querySelector('#product-dropdown'); + const dropdownItems = component.querySelector('#dropdown-items'); -// Expand the menu on click -if (productDropdown) { - productDropdown.addEventListener("click", function() { - productDropdown.classList.toggle("open"); - dropdownItems.classList.toggle("open"); + // Expand the menu on click + if (productDropdown) { + productDropdown.addEventListener('click', function () { + productDropdown.classList.toggle('open'); + dropdownItems.classList.toggle('open'); + }); + } + + // Close the dropdown by clicking anywhere else + document.addEventListener('click', function (e) { + // Check if the click was outside of the '.product-list' container + if (!e.target.closest('.product-list')) { + dropdownItems.classList.remove('open'); + } }); } - -// Close the dropdown by clicking anywhere else -document.addEventListener("click", function(e) { - // Check if the click was outside of the '.product-list' container - if (!e.target.closest('.product-list')) { - dropdownItems.classList.remove("open"); - } -}); diff --git a/assets/styles/layouts/_datetime.scss b/assets/styles/layouts/_datetime.scss new file mode 100644 index 000000000..dc8f20bdf --- /dev/null +++ b/assets/styles/layouts/_datetime.scss @@ -0,0 +1,18 @@ +/* + Datetime Components + ---------------------------------------------- +*/ + +.current-timestamp, +.current-date, +.current-time, +.enterprise-eol-date { + color: $current-timestamp-color; + display: inline-block; + font-family: $proxima; + white-space: nowrap; +} + +.nowrap { + white-space: nowrap; +} \ No newline at end of file diff --git a/assets/styles/layouts/_homepage.scss b/assets/styles/layouts/_homepage.scss index a0583b4c9..ca92588e9 100644 --- a/assets/styles/layouts/_homepage.scss +++ b/assets/styles/layouts/_homepage.scss @@ -105,7 +105,7 @@ .product { padding: 0 1rem; display: flex; - flex: 1 1 50%; + flex: 1 1 33%; flex-direction: column; justify-content: space-between; max-width: 33%; @@ -118,11 +118,10 @@ line-height: 1.5rem; color: rgba($article-text, .7); } - } - &.new { - .product-info h3::after { - content: "New"; + h3[state] { + &::after { + content: attr(state); margin-left: .5rem; font-size: 1rem; padding: .25em .5em .25em .4em; @@ -132,6 +131,8 @@ font-style: italic; vertical-align: middle; } + + } } ul.product-links { @@ -227,6 +228,30 @@ background: $article-bg; } + .categories { + display: flex; + flex-direction: row; + flex-wrap: wrap; + // margin: 0 -1rem; + width: calc(100% + 2rem); + + .category { + &.full-width { + width: 100%; + } + &.two-thirds { + width: 66.66%; + .product { max-width: 50%; } + } + &.one-third { + width: 33.33%; + .product { + max-width: 100%; + } + } + } + } + .category-head{ margin: 1rem 0 2rem; &::after { @@ -234,6 +259,7 @@ display: block; border-top: 1px solid $article-hr; margin-top: -1.15rem; + width: calc(100% - 2rem); } } } @@ -441,6 +467,16 @@ ul {margin-bottom: 0;} } } + .categories .category { + &.two-thirds { + width: 100%; + .product { max-width: 100%; } + } + &.one-third { + width: 100%; + .product { max-width: 100%; } + } + } } #telegraf { flex-direction: column; diff --git a/assets/styles/layouts/article/_blocks.scss b/assets/styles/layouts/article/_blocks.scss index 090ee9560..62b205491 100644 --- a/assets/styles/layouts/article/_blocks.scss +++ b/assets/styles/layouts/article/_blocks.scss @@ -96,4 +96,5 @@ blockquote { "blocks/tip", "blocks/important", "blocks/warning", - "blocks/caution"; + "blocks/caution", + "blocks/beta"; diff --git a/assets/styles/layouts/article/_diagrams.scss b/assets/styles/layouts/article/_diagrams.scss index 4e3c1694e..f6c3e1b07 100644 --- a/assets/styles/layouts/article/_diagrams.scss +++ b/assets/styles/layouts/article/_diagrams.scss @@ -16,6 +16,10 @@ background: $article-code-bg !important; font-size: .85em; font-weight: $medium; + + p { + background: $article-bg !important; + } } .node { diff --git a/assets/styles/layouts/article/blocks/_beta.scss b/assets/styles/layouts/article/blocks/_beta.scss new file mode 100644 index 000000000..b3ab3a70c --- /dev/null +++ b/assets/styles/layouts/article/blocks/_beta.scss @@ -0,0 +1,105 @@ +.block.beta { + @include gradient($grad-burningDusk); + padding: 4px; + border: none; + border-radius: 25px !important; + + .beta-content { + background: $article-bg; + border-radius: 21px; + padding: calc(1.65rem - 4px) calc(2rem - 4px) calc(.1rem + 4px) calc(2rem - 4px); + + h4 { + color: $article-heading; + } + + p {margin-bottom: 1rem;} + + .expand-wrapper { + border: none; + margin: .5rem 0 1.5rem; + } + .expand { + border: none; + padding: 0; + + .expand-content p { + margin-left: 2rem; + } + + ul { + + margin-top: -1rem; + + &.feedback-channels { + + padding: 0; + margin: -1rem 0 1.5rem 2rem; + list-style: none; + + a { + color: $article-heading; + font-weight: $medium; + position: relative; + + &.discord:before { + content: url('/svgs/discord.svg'); + display: inline-block; + height: 1.1rem; + width: 1.25rem; + vertical-align: top; + margin: 2px .65rem 0 0; + } + + &.community:before { + content: "\e900"; + color: $article-heading; + margin: 0 .65rem 0 0; + font-size: 1.2rem; + font-family: 'icomoon-v2'; + vertical-align: middle; + } + + &.slack:before { + content: url('/svgs/slack.svg'); + display: inline-block; + height: 1.1rem; + width: 1.1rem; + vertical-align: text-top; + margin-right: .65rem; + } + + &.reddit:before { + content: url('/svgs/reddit.svg'); + display: inline-block; + height: 1.1rem; + width: 1.2rem; + vertical-align: top; + margin: 2px .65rem 0 0; + } + + &::after { + content: "\e90a"; + font-family: 'icomoon-v4'; + font-weight: bold; + font-size: 1.3rem; + display: inline-block; + position: absolute; + @include gradient($grad-burningDusk); + background-clip: text; + -webkit-text-fill-color: transparent; + right: 0; + transform: translateX(.25rem); + opacity: 0; + transition: transform .2s, opacity .2s; + } + + &:hover { + &::after {transform: translateX(1.5rem); opacity: 1;} + } + } + } + } + } + } +} \ No newline at end of file diff --git a/assets/styles/styles-default.scss b/assets/styles/styles-default.scss index 1e8b162f9..5fd3eed2d 100644 --- a/assets/styles/styles-default.scss +++ b/assets/styles/styles-default.scss @@ -23,6 +23,7 @@ "layouts/syntax-highlighting", "layouts/algolia-search-overrides", "layouts/landing", + "layouts/datetime", "layouts/error-page", "layouts/footer-widgets", "layouts/modals", diff --git a/assets/styles/themes/_theme-dark.scss b/assets/styles/themes/_theme-dark.scss index b46051152..800740cf1 100644 --- a/assets/styles/themes/_theme-dark.scss +++ b/assets/styles/themes/_theme-dark.scss @@ -203,6 +203,12 @@ $article-btn-text-hover: $g20-white; $article-nav-icon-bg: $g5-pepper; $article-nav-acct-bg: $g3-castle; +// Datetime shortcode colors +$current-timestamp-color: $g15-platinum; +$current-date-color: $g15-platinum; +$current-time-color: $g15-platinum; +$enterprise-eol-date-color: $g15-platinum; + // Error Page Colors $error-page-btn: $b-pool; $error-page-btn-text: $g20-white; diff --git a/assets/styles/themes/_theme-light.scss b/assets/styles/themes/_theme-light.scss index c19e91ab2..eb9e530f3 100644 --- a/assets/styles/themes/_theme-light.scss +++ b/assets/styles/themes/_theme-light.scss @@ -203,6 +203,12 @@ $article-btn-text-hover: $g20-white !default; $article-nav-icon-bg: $g6-smoke !default; $article-nav-acct-bg: $g5-pepper !default; +// Datetime Colors +$current-timestamp-color: $article-text !default; +$current-date-color: $article-text !default; +$current-time-color: $article-text !default; +$enterprise-eol-date-color: $article-text !default; + // Error Page Colors $error-page-btn: $b-pool !default; $error-page-btn-text: $g20-white !default; diff --git a/config/_default/config.yml b/config/_default/config.yml deleted file mode 100644 index 917d78e2d..000000000 --- a/config/_default/config.yml +++ /dev/null @@ -1,2 +0,0 @@ -import: - - hugo.yml \ No newline at end of file diff --git a/hugo.yml b/config/_default/hugo.yml similarity index 66% rename from hugo.yml rename to config/_default/hugo.yml index 909917486..b98cf11f7 100644 --- a/hugo.yml +++ b/config/_default/hugo.yml @@ -1,4 +1,4 @@ -baseURL: 'https://docs.influxdata.com/' +baseURL: https://docs.influxdata.com/ languageCode: en-us title: InfluxDB Documentation @@ -49,21 +49,52 @@ privacy: youtube: disable: false privacyEnhanced: true + outputFormats: json: mediaType: application/json baseName: pages isPlainText: true +# Asset processing configuration for development build: # Ensure Hugo correctly processes JavaScript modules jsConfig: nodeEnv: "development" +# Development asset processing + writeStats: false + useResourceCacheWhen: "fallback" + noJSConfigInAssets: false + +# Asset processing configuration +assetDir: "assets" module: mounts: - source: assets target: assets - - source: node_modules - target: assets/node_modules \ No newline at end of file + target: assets/node_modules + +# Environment parameters +params: + env: development + environment: development + +# Configure the server for development +server: + port: 1313 + baseURL: 'http://localhost:1313/' + watchChanges: true + disableLiveReload: false + +# Ignore specific warning logs +ignoreLogs: + - warning-goldmark-raw-html + +# Disable minification for development +minify: + disableJS: true + disableCSS: true + disableHTML: true + minifyOutput: false diff --git a/config/production/config.yml b/config/production/config.yml new file mode 100644 index 000000000..da574daff --- /dev/null +++ b/config/production/config.yml @@ -0,0 +1,40 @@ +# Production overrides for CI/CD builds +baseURL: 'https://docs.influxdata.com/' + +# Production environment parameters +params: + env: production + environment: production + +# Enable minification for production +minify: + disableJS: false + disableCSS: false + disableHTML: false + minifyOutput: true + +# Production asset processing +build: + writeStats: false + useResourceCacheWhen: "fallback" + buildOptions: + sourcemap: false + target: "es2015" + +# Asset processing configuration +assetDir: "assets" + +# Mount assets for production +module: + mounts: + - source: assets + target: assets + - source: node_modules + target: assets/node_modules + +# Disable development server settings +server: {} + +# Suppress the warning mentioned in the error +ignoreLogs: + - 'warning-goldmark-raw-html' \ No newline at end of file diff --git a/config/production/hugo.yml b/config/production/hugo.yml new file mode 100644 index 000000000..bd5911c96 --- /dev/null +++ b/config/production/hugo.yml @@ -0,0 +1,17 @@ +build: + writeStats: false + useResourceCacheWhen: "fallback" + buildOptions: + sourcemap: false + target: "es2015" +minify: + disableJS: false + disableCSS: false + disableHTML: false + minifyOutput: true +params: + env: production + environment: production +server: { + disableLiveReload: true +} \ No newline at end of file diff --git a/config/staging/hugo.yml b/config/staging/hugo.yml new file mode 100644 index 000000000..3a0a651c2 --- /dev/null +++ b/config/staging/hugo.yml @@ -0,0 +1,18 @@ +baseURL: https://test2.docs.influxdata.com/ +build: + writeStats: false + useResourceCacheWhen: "fallback" + buildOptions: + sourcemap: false + target: "es2015" +minify: + disableJS: false + disableCSS: false + disableHTML: false + minifyOutput: true +params: + env: staging + environment: staging +server: + disableLiveReload: true + \ No newline at end of file diff --git a/config/testing/config.yml b/config/testing/config.yml deleted file mode 100644 index f403c8347..000000000 --- a/config/testing/config.yml +++ /dev/null @@ -1,20 +0,0 @@ -baseURL: 'http://localhost:1315/' - -server: - port: 1315 - -# Override settings for testing -buildFuture: true - -# Configure what content is built in testing env -params: - environment: testing - buildTestContent: true - -# Keep your shared content exclusions -ignoreFiles: - - "content/shared/.*" - -# Ignore specific warning logs -ignoreLogs: - - warning-goldmark-raw-html \ No newline at end of file diff --git a/content/enterprise_influxdb/v1/concepts/schema_and_data_layout.md b/content/enterprise_influxdb/v1/concepts/schema_and_data_layout.md index 43c781460..c60e8ccef 100644 --- a/content/enterprise_influxdb/v1/concepts/schema_and_data_layout.md +++ b/content/enterprise_influxdb/v1/concepts/schema_and_data_layout.md @@ -22,7 +22,7 @@ We recommend the following design guidelines for most use cases: Your queries should guide what data you store in [tags](/enterprise_influxdb/v1/concepts/glossary/#tag) and what you store in [fields](/enterprise_influxdb/v1/concepts/glossary/#field) : -- Store commonly queried and grouping ([`group()`](/flux/v0.x/stdlib/universe/group) or [`GROUP BY`](/enterprise_influxdb/v1/query_language/explore-data/#group-by-tags)) metadata in tags. +- Store commonly queried and grouping ([`group()`](/flux/v0/stdlib/universe/group) or [`GROUP BY`](/enterprise_influxdb/v1/query_language/explore-data/#group-by-tags)) metadata in tags. - Store data in fields if each data point contains a different value. - Store numeric values as fields ([tag values](/enterprise_influxdb/v1/concepts/glossary/#tag-value) only support string values). diff --git a/content/example.md b/content/example.md index 5bcd782aa..44800941f 100644 --- a/content/example.md +++ b/content/example.md @@ -1267,3 +1267,106 @@ This is small tab 2.4 content. {{% /tab-content %}} {{< /tabs-wrapper >}} + +## Group key demo + +Used to demonstrate Flux group keys + +{{< tabs-wrapper >}} +{{% tabs "small" %}} +[Input](#) +[Output](#) +Click to view output +{{% /tabs %}} +{{% tab-content %}} + +The following data is output from the last `filter()` and piped forward into `group()`: + +> [!Note] +> `_start` and `_stop` columns have been omitted. + +{{% flux/group-key "[_measurement=home, room=Kitchen, _field=hum]" true %}} + +| _time | _measurement | room | _field | _value | +| :------------------- | :----------- | :---------- | :----- | :----- | +| 2022-01-01T08:00:00Z | home | Kitchen | hum | 35.9 | +| 2022-01-01T09:00:00Z | home | Kitchen | hum | 36.2 | +| 2022-01-01T10:00:00Z | home | Kitchen | hum | 36.1 | + +{{% flux/group-key "[_measurement=home, room=Living Room, _field=hum]" true %}} + +| _time | _measurement | room | _field | _value | +| :------------------- | :----------- | :---------- | :----- | :----- | +| 2022-01-01T08:00:00Z | home | Living Room | hum | 35.9 | +| 2022-01-01T09:00:00Z | home | Living Room | hum | 35.9 | +| 2022-01-01T10:00:00Z | home | Living Room | hum | 36 | + +{{% flux/group-key "[_measurement=home, room=Kitchen, _field=temp]" true %}} + +| _time | _measurement | room | _field | _value | +| :------------------- | :----------- | :---------- | :----- | :----- | +| 2022-01-01T08:00:00Z | home | Kitchen | temp | 21 | +| 2022-01-01T09:00:00Z | home | Kitchen | temp | 23 | +| 2022-01-01T10:00:00Z | home | Kitchen | temp | 22.7 | + +{{% flux/group-key "[_measurement=home, room=Living Room, _field=temp]" true %}} + +| _time | _measurement | room | _field | _value | +| :------------------- | :----------- | :---------- | :----- | :----- | +| 2022-01-01T08:00:00Z | home | Living Room | temp | 21.1 | +| 2022-01-01T09:00:00Z | home | Living Room | temp | 21.4 | +| 2022-01-01T10:00:00Z | home | Living Room | temp | 21.8 | + +{{% /tab-content %}} +{{% tab-content %}} + +When grouped by `_field`, all rows with the `temp` field will be in one table +and all the rows with the `hum` field will be in another. +`_measurement` and `room` columns no longer affect how rows are grouped. + +{{% note %}} +`_start` and `_stop` columns have been omitted. +{{% /note %}} + +{{% flux/group-key "[_field=hum]" true %}} + +| _time | _measurement | room | _field | _value | +| :------------------- | :----------- | :---------- | :----- | :----- | +| 2022-01-01T08:00:00Z | home | Kitchen | hum | 35.9 | +| 2022-01-01T09:00:00Z | home | Kitchen | hum | 36.2 | +| 2022-01-01T10:00:00Z | home | Kitchen | hum | 36.1 | +| 2022-01-01T08:00:00Z | home | Living Room | hum | 35.9 | +| 2022-01-01T09:00:00Z | home | Living Room | hum | 35.9 | +| 2022-01-01T10:00:00Z | home | Living Room | hum | 36 | + +{{% flux/group-key "[_field=temp]" true %}} + +| _time | _measurement | room | _field | _value | +| :------------------- | :----------- | :---------- | :----- | :----- | +| 2022-01-01T08:00:00Z | home | Kitchen | temp | 21 | +| 2022-01-01T09:00:00Z | home | Kitchen | temp | 23 | +| 2022-01-01T10:00:00Z | home | Kitchen | temp | 22.7 | +| 2022-01-01T08:00:00Z | home | Living Room | temp | 21.1 | +| 2022-01-01T09:00:00Z | home | Living Room | temp | 21.4 | +| 2022-01-01T10:00:00Z | home | Living Room | temp | 21.8 | + +{{% /tab-content %}} +{{< /tabs-wrapper >}} + +## datetime/current-timestamp shortcode + +### Default usage + +{{< datetime/current-timestamp >}} + +### Format YYYY-MM-DD HH:mm:ss + +{{< datetime/current-timestamp format="YYYY-MM-DD HH:mm:ss" >}} + +### Format with UTC timezone + +{{< datetime/current-timestamp format="YYYY-MM-DD HH:mm:ss" timezone="UTC" >}} + +### Format with America/New_York timezone + +{{< datetime/current-timestamp format="YYYY-MM-DD HH:mm:ss" timezone="America/New_York" >}} diff --git a/content/flux/v0/release-notes.md b/content/flux/v0/release-notes.md index 3d731055e..597a651f1 100644 --- a/content/flux/v0/release-notes.md +++ b/content/flux/v0/release-notes.md @@ -433,7 +433,7 @@ representative of the Flux SPEC. details. - Add tagging support to Flux tests. - Add new function [`experimental.catch()`](/flux/v0/stdlib/experimental/catch/). -- Add new function [`testing.shouldError()`](/flux/v0.x/stdlib/testing/shoulderror/). +- Add new function [`testing.shouldError()`](/flux/v0/stdlib/testing/shoulderror/). ### Bug fixes diff --git a/content/influxdb/cloud/account-management/data-usage.md b/content/influxdb/cloud/account-management/data-usage.md index 40969ea56..9efb3e144 100644 --- a/content/influxdb/cloud/account-management/data-usage.md +++ b/content/influxdb/cloud/account-management/data-usage.md @@ -12,8 +12,8 @@ menu: parent: Account management name: View data usage related: - - /flux/v0.x/stdlib/experimental/usage/from/ - - /flux/v0.x/stdlib/experimental/usage/limits/ + - /flux/v0/stdlib/experimental/usage/from/ + - /flux/v0/stdlib/experimental/usage/limits/ alt_links: cloud-serverless: /influxdb3/cloud-serverless/admin/billing/data-usage/ --- diff --git a/content/influxdb/cloud/account-management/limits.md b/content/influxdb/cloud/account-management/limits.md index b1ea7636d..b4670cf88 100644 --- a/content/influxdb/cloud/account-management/limits.md +++ b/content/influxdb/cloud/account-management/limits.md @@ -9,8 +9,8 @@ menu: parent: Account management name: Adjustable quotas and limits related: - - /flux/v0.x/stdlib/experimental/usage/from/ - - /flux/v0.x/stdlib/experimental/usage/limits/ + - /flux/v0/stdlib/experimental/usage/from/ + - /flux/v0/stdlib/experimental/usage/limits/ - /influxdb/cloud/write-data/best-practices/resolve-high-cardinality/ alt_links: cloud-serverless: /influxdb3/cloud-serverless/admin/billing/limits/ @@ -97,7 +97,7 @@ Combine delete predicate expressions (if possible) into a single request. Influx The {{< product-name >}} UI displays a notification message when service quotas or limits are exceeded. The error messages correspond with the relevant [API error responses](#api-error-responses). -Errors can also be viewed in the [Usage page](/influxdb/cloud/account-management/data-usage/) under **Limit Events**, e.g. `event_type_limited_query`, `event_type_limited_write`,`event_type_limited_cardinality`, or `event_type_limited_delete_rate`. +Errors can also be viewed in the [Usage page](/influxdb/cloud/account-management/data-usage/) under **Limit Events**, for example: `event_type_limited_query`, `event_type_limited_write`,`event_type_limited_cardinality`, or `event_type_limited_delete_rate`. ## API error responses diff --git a/content/influxdb/cloud/admin/organizations/migrate-org.md b/content/influxdb/cloud/admin/organizations/migrate-org.md index 9d7809aa9..a03aaa43d 100644 --- a/content/influxdb/cloud/admin/organizations/migrate-org.md +++ b/content/influxdb/cloud/admin/organizations/migrate-org.md @@ -40,7 +40,7 @@ To replicate the state of an organization: ### Write data with Flux Perform a query to return all specified data. Write results directly to a bucket in the new organization with the Flux -[`to()` function](/flux/v0.x/stdlib/influxdata/influxdb/to/). +[`to()` function](/flux/v0/stdlib/influxdata/influxdb/to/). {{% note %}} If writes are prevented by rate limiting, diff --git a/content/influxdb/cloud/query-data/execute-queries/query-demo-data.md b/content/influxdb/cloud/query-data/execute-queries/query-demo-data.md index c932e2f0b..d0f94cbf6 100644 --- a/content/influxdb/cloud/query-data/execute-queries/query-demo-data.md +++ b/content/influxdb/cloud/query-data/execute-queries/query-demo-data.md @@ -25,7 +25,7 @@ types of demo data that let you explore and familiarize yourself with InfluxDB C {{% note %}} #### Free to use and read-only - InfluxDB Cloud demo data buckets are **free to use** and are **_not_ subject to - [Free Plan rate limits](influxdb/cloud/account-management/limits/#free-plan-rate-limits) rate limits**. + [Free Plan rate limits](/influxdb/cloud/account-management/limits/#free-plan-rate-limits) rate limits**. - Demo data buckets are **read-only**. You cannot write data into demo data buckets. {{% /note %}} diff --git a/content/influxdb/cloud/reference/cli/influx/transpile/_index.md b/content/influxdb/cloud/reference/cli/influx/transpile/_index.md index 72b7485fb..1f56fa658 100644 --- a/content/influxdb/cloud/reference/cli/influx/transpile/_index.md +++ b/content/influxdb/cloud/reference/cli/influx/transpile/_index.md @@ -13,7 +13,7 @@ prepend: | > [Use InfluxQL to query InfluxDB](/influxdb/cloud/query-data/influxql/). > For information about manually converting InfluxQL queries to Flux, see: > - > - [Get started with Flux](/flux/v0.x/get-started/) + > - [Get started with Flux](/flux/v0/get-started/) > - [Query data with Flux](/influxdb/cloud/query-data/flux/) > - [Migrate continuous queries to Flux tasks](/influxdb/cloud/upgrade/v1-to-cloud/migrate-cqs/) source: /shared/influxdb-v2/reference/cli/influx/transpile/_index.md diff --git a/content/influxdb/cloud/reference/release-notes/cloud-updates.md b/content/influxdb/cloud/reference/release-notes/cloud-updates.md index 70a7ab533..d6cea7c84 100644 --- a/content/influxdb/cloud/reference/release-notes/cloud-updates.md +++ b/content/influxdb/cloud/reference/release-notes/cloud-updates.md @@ -188,7 +188,7 @@ Now, you can add the following buckets with sample data to your notebooks: ### Add ability to share notebooks -Add ability to [share a notebook](/influxdb/cloud/tools/notebooks/manage-notebooks/#share-a-notebook) in the the InfluxDB Cloud notebook UI. +Add ability to [share a notebook](/influxdb/cloud/tools/notebooks/manage-notebooks/#share-a-notebook) in the InfluxDB Cloud notebook UI. ## October 2021 @@ -209,7 +209,7 @@ Refresh the look and feel of InfluxDB Cloud UI. The updated icons, fonts, and la ### Flux update -Upgrade to [Flux v0.139](/flux/v0.x/release-notes/). +Upgrade to [Flux v0.139](/flux/v0/release-notes/). ### Telegraf configuration UI @@ -347,7 +347,7 @@ Install and customize any [InfluxDB community template](https://github.com/influ ## Features - **InfluxDB OSS 2.0 alpha-17** – - _See the [alpha-17 release notes](/influxdb/v2%2E0/reference/release-notes/influxdb/#v200-alpha17) for details._ + _See the [alpha-17 release notes](/influxdb/v2/reference/release-notes/influxdb/#v200-alpha17) for details._ - Alerts and Notifications to Slack (Free Plan), PagerDuty and HTTP (Usage-based Plan). - Rate limiting on cardinality for Free Plan. - Billing notifications. @@ -359,7 +359,7 @@ Install and customize any [InfluxDB community template](https://github.com/influ ### Features - **InfluxDB OSS 2.0 alpha-15** – - _See the [alpha-9 release notes](/influxdb/v2%2E0/reference/release-notes/influxdb/#v200-alpha15) for details._ + _See the [alpha-9 release notes](/influxdb/v2/reference/release-notes/influxdb/#v200-alpha15) for details._ - Usage-based Plan. - Adjusted Free Plan rate limits. - Timezone selection in the user interface. @@ -386,7 +386,7 @@ Install and customize any [InfluxDB community template](https://github.com/influ ### Features - **InfluxDB OSS 2.0 alpha-9** – - _See the [alpha-9 release notes](/influxdb/v2%2E0/reference/release-notes/influxdb/#v200-alpha9) for details._ + _See the [alpha-9 release notes](/influxdb/v2/reference/release-notes/influxdb/#v200-alpha9) for details._ ### Bug fixes @@ -403,7 +403,7 @@ Install and customize any [InfluxDB community template](https://github.com/influ ### Features - **InfluxDB OSS 2.0 alpha-7** – - _See the [alpha-7 release notes](/influxdb/v2%2E0/reference/release-notes/influxdb/#v200-alpha7) for details._ + _See the [alpha-7 release notes](/influxdb/v2/reference/release-notes/influxdb/#v200-alpha7) for details._ ### Bug fixes diff --git a/content/influxdb/v1/concepts/schema_and_data_layout.md b/content/influxdb/v1/concepts/schema_and_data_layout.md index 5824c4477..f1006cc22 100644 --- a/content/influxdb/v1/concepts/schema_and_data_layout.md +++ b/content/influxdb/v1/concepts/schema_and_data_layout.md @@ -22,7 +22,7 @@ We recommend the following design guidelines for most use cases: Your queries should guide what data you store in [tags](/influxdb/v1/concepts/glossary/#tag) and what you store in [fields](/influxdb/v1/concepts/glossary/#field) : -- Store commonly queried and grouping ([`group()`](/flux/v0.x/stdlib/universe/group) or [`GROUP BY`](/influxdb/v1/query_language/explore-data/#group-by-tags)) metadata in tags. +- Store commonly queried and grouping ([`group()`](/flux/v0/stdlib/universe/group) or [`GROUP BY`](/influxdb/v1/query_language/explore-data/#group-by-tags)) metadata in tags. - Store data in fields if each data point contains a different value. - Store numeric values as fields ([tag values](/influxdb/v1/concepts/glossary/#tag-value) only support string values). diff --git a/content/influxdb/v1/flux/guides/exists.md b/content/influxdb/v1/flux/guides/exists.md index 036e04905..c4c3ad77e 100644 --- a/content/influxdb/v1/flux/guides/exists.md +++ b/content/influxdb/v1/flux/guides/exists.md @@ -83,7 +83,7 @@ customSumProduct = (tables=<-) => tables #### Check if a statically defined record contains a key -When you use the [record literal syntax](/flux/v0.x/data-types/composite/record/#record-syntax) +When you use the [record literal syntax](/flux/v0/data-types/composite/record/#record-syntax) to statically define a record, Flux knows the record type and what keys to expect. - If the key exists in the static record, `exists` returns `true`. diff --git a/content/influxdb3/cloud-dedicated/admin/databases/_index.md b/content/influxdb3/cloud-dedicated/admin/databases/_index.md index 5f0c04b84..07a934c57 100644 --- a/content/influxdb3/cloud-dedicated/admin/databases/_index.md +++ b/content/influxdb3/cloud-dedicated/admin/databases/_index.md @@ -52,7 +52,7 @@ never be removed by the retention enforcement service. You can customize [table (measurement) limits](#table-limit) and [table column limits](#column-limit) when you [create](#create-a-database) or -[update a database](#update-a-database) in {{< product-name >}}. +[update a database](#update-a-database) in {{% product-name %}}. ### Table limit diff --git a/content/influxdb3/cloud-dedicated/write-data/use-telegraf/_index.md b/content/influxdb3/cloud-dedicated/write-data/use-telegraf/_index.md index 28d0fa1d0..f00b102cd 100644 --- a/content/influxdb3/cloud-dedicated/write-data/use-telegraf/_index.md +++ b/content/influxdb3/cloud-dedicated/write-data/use-telegraf/_index.md @@ -39,7 +39,7 @@ Each Telegraf configuration must **have at least one input plugin and one output Telegraf input plugins retrieve metrics from different sources. Telegraf output plugins write those metrics to a destination. -Use the [`outputs.influxdb_v2`](/telegraf/v1/plugins/#output-influxdb_v2) plugin to write metrics collected by Telegraf to {{< product-name >}}. +Use the [`outputs.influxdb_v2`](/telegraf/v1/plugins/#output-influxdb_v2) plugin to write metrics collected by Telegraf to {{% product-name %}}. ```toml # ... diff --git a/content/influxdb3/cloud-dedicated/write-data/use-telegraf/configure/_index.md b/content/influxdb3/cloud-dedicated/write-data/use-telegraf/configure/_index.md index 8d68f0b14..3f7181e7d 100644 --- a/content/influxdb3/cloud-dedicated/write-data/use-telegraf/configure/_index.md +++ b/content/influxdb3/cloud-dedicated/write-data/use-telegraf/configure/_index.md @@ -115,7 +115,7 @@ For {{% product-name %}}, set this to an empty string (`""`). The name of the {{% product-name %}} database to write data to. > [!Note] -> ##### Write to InfluxDB v1.x and {{< product-name >}} +> ##### Write to InfluxDB v1.x and {{% product-name %}} > > If a Telegraf agent is already writing to an InfluxDB v1.x database, > enabling the InfluxDB v2 output plugin will write data to both v1.x and your {{< product-name omit="Clustered" >}} cluster. diff --git a/content/influxdb3/cloud-serverless/admin/billing/data-usage.md b/content/influxdb3/cloud-serverless/admin/billing/data-usage.md index 9db594efa..0ae2e30a9 100644 --- a/content/influxdb3/cloud-serverless/admin/billing/data-usage.md +++ b/content/influxdb3/cloud-serverless/admin/billing/data-usage.md @@ -9,8 +9,8 @@ menu: parent: Manage billing name: View data usage related: - - /flux/v0.x/stdlib/experimental/usage/from/ - - /flux/v0.x/stdlib/experimental/usage/limits/ + - /flux/v0/stdlib/experimental/usage/from/ + - /flux/v0/stdlib/experimental/usage/limits/ alt_links: cloud: /influxdb/cloud/account-management/data-usage/ aliases: diff --git a/content/influxdb3/cloud-serverless/admin/billing/limits.md b/content/influxdb3/cloud-serverless/admin/billing/limits.md index cc14d2fb5..2d5eca88a 100644 --- a/content/influxdb3/cloud-serverless/admin/billing/limits.md +++ b/content/influxdb3/cloud-serverless/admin/billing/limits.md @@ -9,8 +9,8 @@ menu: parent: Manage billing name: Adjustable quotas and limits related: - - /flux/v0.x/stdlib/experimental/usage/from/ - - /flux/v0.x/stdlib/experimental/usage/limits/ + - /flux/v0/stdlib/experimental/usage/from/ + - /flux/v0/stdlib/experimental/usage/limits/ - /influxdb3/cloud-serverless/write-data/best-practices/ alt_links: cloud: /influxdb/cloud/account-management/limits/ diff --git a/content/influxdb3/cloud-serverless/write-data/use-telegraf/_index.md b/content/influxdb3/cloud-serverless/write-data/use-telegraf/_index.md index d1ce67734..618b79969 100644 --- a/content/influxdb3/cloud-serverless/write-data/use-telegraf/_index.md +++ b/content/influxdb3/cloud-serverless/write-data/use-telegraf/_index.md @@ -40,7 +40,7 @@ Each Telegraf configuration must **have at least one input plugin and one output Telegraf input plugins retrieve metrics from different sources. Telegraf output plugins write those metrics to a destination. -Use the [`outputs.influxdb_v2`](/telegraf/v1/plugins/#output-influxdb_v2) plugin to write metrics collected by Telegraf to {{< product-name >}}. +Use the [`outputs.influxdb_v2`](/telegraf/v1/plugins/#output-influxdb_v2) plugin to write metrics collected by Telegraf to {{% product-name %}}. ```toml # ... diff --git a/content/influxdb3/cloud-serverless/write-data/use-telegraf/configure/_index.md b/content/influxdb3/cloud-serverless/write-data/use-telegraf/configure/_index.md index a207a9961..2e45a57e0 100644 --- a/content/influxdb3/cloud-serverless/write-data/use-telegraf/configure/_index.md +++ b/content/influxdb3/cloud-serverless/write-data/use-telegraf/configure/_index.md @@ -110,7 +110,7 @@ For {{% product-name %}}, set this to an empty string (`""`). The name of the {{% product-name %}} bucket to write data to. > [!Note] -> ##### Write to InfluxDB v1.x and {{< product-name >}} +> ##### Write to InfluxDB v1.x and {{% product-name %}} > > If a Telegraf agent is already writing to an InfluxDB v1.x database, > enabling the InfluxDB v2 output plugin will write data to both v1.x and your {{< product-name >}} bucket. diff --git a/content/influxdb3/clustered/admin/databases/_index.md b/content/influxdb3/clustered/admin/databases/_index.md index f37eeb678..940c3ad01 100644 --- a/content/influxdb3/clustered/admin/databases/_index.md +++ b/content/influxdb3/clustered/admin/databases/_index.md @@ -52,7 +52,7 @@ never be removed by the retention enforcement service. You can customize [table (measurement) limits](#table-limit) and [table column limits](#column-limit) when you [create](#create-a-database) or -[update a database](#update-a-database) in {{< product-name >}}. +[update a database](#update-a-database) in {{% product-name %}}. ### Table limit diff --git a/content/influxdb3/clustered/admin/upgrade.md b/content/influxdb3/clustered/admin/upgrade.md index 1664e9a72..26ad743ef 100644 --- a/content/influxdb3/clustered/admin/upgrade.md +++ b/content/influxdb3/clustered/admin/upgrade.md @@ -51,7 +51,7 @@ Use the following command to return the image Kubernetes uses to build your InfluxDB cluster: ```sh -kubectl get appinstances.kubecfg.dev influxdb -o jsonpath='{.spec.package.image}' +kubectl get appinstances.kubecfg.dev influxdb -n influxdb -o jsonpath='{.spec.package.image}' ``` The package version number is at the end of the returned string (after `influxdb:`): @@ -66,8 +66,8 @@ us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:PACKAGE_VERSION ### Identify the version to upgrade to -All available InfluxDB Clustered package versions are provided at -[oci.influxdata.com](https://oci.influxdata.com). +All available InfluxDB Clustered package versions are provided in the +[InfluxDB Clustered release notes](/influxdb3/clustered/reference/release-notes/clustered/). Find the package version you want to upgrade to and copy the version number. @@ -76,7 +76,7 @@ Find the package version you want to upgrade to and copy the version number. Some InfluxDB Clustered releases are _checkpoint releases_ that introduce a breaking change to an InfluxDB component. Checkpoint releases are only made when absolutely necessary and are clearly -identified at [oci.influxdata.com](https://oci.influxdata.com). +identified in the [InfluxDB Clustered release notes](/influxdb3/clustered/reference/release-notes/clustered/). **When upgrading, always upgrade to each checkpoint release first, before proceeding to newer versions.** diff --git a/content/influxdb3/clustered/reference/release-notes/clustered.md b/content/influxdb3/clustered/reference/release-notes/clustered.md index 7c0d688fe..9420e7ea9 100644 --- a/content/influxdb3/clustered/reference/release-notes/clustered.md +++ b/content/influxdb3/clustered/reference/release-notes/clustered.md @@ -21,6 +21,42 @@ weight: 201 > Checkpoint releases are only made when absolutely necessary and are clearly > identified below with the icon. +{{< expand-wrapper >}} +{{% expand "Download release artifacts manually" %}} + +To download a bundle of release artifacts for a specific version of +InfluxDB Clustered: + +1. [install `crane`](https://github.com/google/go-containerregistry/tree/main/cmd/crane#installation) + and [`jq`](https://jqlang.org/download/). +2. Ensure your InfluxData pull secret is in the `/tmp/influxdbsecret` directory + on your local machine. This secret was provided to you by InfluxData to + authorize the use of InfluxDB Clustered images. +3. Run the following shell script: + +{{% code-placeholders "RELEASE_VERSION" %}} + +```bash +INFLUXDB_RELEASE="RELEASE_VERSION" +IMAGE="us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:$INFLUXDB_RELEASE" +DOCKER_CFG="/tmp/influxdbsecret" + +DIGEST=$(DOCKER_CONFIG="$DOCKER_CFG" crane manifest "$IMAGE" | jq -r '.layers[1].digest') + +DOCKER_CONFIG="$DOCKER_CFG" \ +crane blob "$IMAGE@$DIGEST" | tar -xvzf - -C ./ +``` +{{% /code-placeholders %}} + +_Replace {{% code-placeholder-key %}}`RELEASE_VERSION`{{% /code-placeholder-key %}} +with the InfluxDB Clustered release version you want to download artifacts for._ + +The script creates an `influxdb-3.0-clustered` directory in the current working +directory. This new directory contains artifacts associated with the specified release. + +{{% /expand %}} +{{< /expand-wrapper >}} + {{< release-toc >}} --- @@ -35,6 +71,12 @@ spec: image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20250508-1719206 ``` +#### Release artifacts + +- [app-instance-schema.json](/downloads/clustered-release-artifacts/20250508-1719206/app-instance-schema.json) +- [example-customer.yml](/downloads/clustered-release-artifacts/20250508-1719206/example-customer.yml) +- [InfluxDB Clustered README EULA July 2024.txt](/downloads/clustered-release-artifacts/InfluxDB%20Clustered%20README%20EULA%20July%202024.txt) + ### Changes #### Deployment @@ -59,6 +101,12 @@ spec: image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20250212-1570743 ``` +#### Release artifacts + +- [app-instance-schema.json](/downloads/clustered-release-artifacts/20250212-1570743/app-instance-schema.json) +- [example-customer.yml](/downloads/clustered-release-artifacts/20250212-1570743/example-customer.yml) +- [InfluxDB Clustered README EULA July 2024.txt](/downloads/clustered-release-artifacts/InfluxDB%20Clustered%20README%20EULA%20July%202024.txt) + ### Bug Fixes This release fixes a bug in the 20241217-1494922 release where the default @@ -88,6 +136,12 @@ spec: image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20241217-1494922 ``` +#### Release artifacts + +- [app-instance-schema.json](/downloads/clustered-release-artifacts/20241217-1494922/app-instance-schema.json) +- [example-customer.yml](/downloads/clustered-release-artifacts/20241217-1494922/example-customer.yml) +- [InfluxDB Clustered README EULA July 2024.txt](/downloads/clustered-release-artifacts/InfluxDB%20Clustered%20README%20EULA%20July%202024.txt) + ### Bug Fixes This fixes a bug present in release [20241024-1354148](#20241024-1354148), in @@ -112,7 +166,7 @@ DSN before connecting. --- -## 20241024-1354148 {date="2024-10-24" .checkpoint} +## 20241024-1354148 {date="2024-10-24" .checkpoint} ### Quickstart @@ -122,6 +176,12 @@ spec: image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20241022-1346953 ``` +#### Release artifacts + +- [app-instance-schema.json](/downloads/clustered-release-artifacts/20241022-1346953/app-instance-schema.json) +- [example-customer.yml](/downloads/clustered-release-artifacts/20241022-1346953/example-customer.yml) +- [InfluxDB Clustered README EULA July 2024.txt](/downloads/clustered-release-artifacts/InfluxDB%20Clustered%20README%20EULA%20July%202024.txt) + ### Known Bugs ### `core` service DSN parsing errors @@ -318,6 +378,12 @@ spec: image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20240819-1176644 ``` +#### Release artifacts + +- [app-instance-schema.json](/downloads/clustered-release-artifacts/20240819-1176644/app-instance-schema.json) +- [example-customer.yml](/downloads/clustered-release-artifacts/20240819-1176644/example-customer.yml) +- [InfluxDB Clustered README EULA July 2024.txt](/downloads/clustered-release-artifacts/InfluxDB%20Clustered%20README%20EULA%20July%202024.txt) + ### Highlights #### `admin` section is no longer required @@ -397,6 +463,12 @@ spec: image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20240717-1117630 ``` +#### Release artifacts + +- [app-instance-schema.json](/downloads/clustered-release-artifacts/20240717-1117630/app-instance-schema.json) +- [example-customer.yml](/downloads/clustered-release-artifacts/20240717-1117630/example-customer.yml) +- [InfluxDB Clustered README EULA July 2024.txt](/downloads/clustered-release-artifacts/InfluxDB%20Clustered%20README%20EULA%20July%202024.txt) + ### Highlights #### Experimental license enforcement @@ -508,6 +580,12 @@ spec: image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20240605-1035562 ``` +#### Release artifacts + +- [app-instance-schema.json](/downloads/clustered-release-artifacts/20240605-1035562/app-instance-schema.json) +- [example-customer.yml](/downloads/clustered-release-artifacts/20240605-1035562/example-customer.yml) +- [InfluxDB Clustered README EULA July 2024.txt](/downloads/clustered-release-artifacts/InfluxDB%20Clustered%20README%20EULA%20July%202024.txt) + ### Highlights Multiple improvements to compaction, pruning, and performance of concurrent queries. @@ -574,6 +652,12 @@ spec: image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20240430-976585 ``` +#### Release artifacts + +- [app-instance-schema.json](/downloads/clustered-release-artifacts/20240430-976585/app-instance-schema.json) +- [example-customer.yml](/downloads/clustered-release-artifacts/20240430-976585/example-customer.yml) +- [InfluxDB Clustered README EULA July 2024.txt](/downloads/clustered-release-artifacts/InfluxDB%20Clustered%20README%20EULA%20July%202024.txt) + ### Highlights - Added configuration settings for an optional Prometheus `ServiceMonitor` @@ -605,6 +689,12 @@ spec: image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20240418-955990 ``` +#### Release artifacts + +- [app-instance-schema.json](/downloads/clustered-release-artifacts/20240418-955990/app-instance-schema.json) +- [example-customer.yml](/downloads/clustered-release-artifacts/20240418-955990/example-customer.yml) +- [InfluxDB Clustered README EULA July 2024.txt](/downloads/clustered-release-artifacts/InfluxDB%20Clustered%20README%20EULA%20July%202024.txt) + ### Highlights #### Minimum `influxctl` version @@ -645,6 +735,12 @@ spec: image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20240325-920726 ``` +#### Release artifacts + +- [app-instance-schema.json](/downloads/clustered-release-artifacts/20240325-920726/app-instance-schema.json) +- [example-customer.yml](/downloads/clustered-release-artifacts/20240325-920726/example-customer.yml) +- [InfluxDB Clustered README EULA July 2024.txt](/downloads/clustered-release-artifacts/InfluxDB%20Clustered%20README%20EULA%20July%202024.txt) + ### Highlights #### Lower defaults for garbage collection @@ -696,6 +792,12 @@ spec: image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20240227-883344 ``` +#### Release artifacts + +- [app-instance-schema.json](/downloads/clustered-release-artifacts/20240227-883344/app-instance-schema.json) +- [example-customer.yml](/downloads/clustered-release-artifacts/20240227-883344/example-customer.yml) +- [InfluxDB Clustered README EULA July 2024.txt](/downloads/clustered-release-artifacts/InfluxDB%20Clustered%20README%20EULA%20July%202024.txt) + ### Changes #### Deployment @@ -724,6 +826,12 @@ spec: image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20240214-863513 ``` +#### Release artifacts + +- [app-instance-schema.json](/downloads/clustered-release-artifacts/20240214-863513/app-instance-schema.json) +- [example-customer.yml](/downloads/clustered-release-artifacts/20240214-863513/example-customer.yml) +- [InfluxDB Clustered README EULA July 2024.txt](/downloads/clustered-release-artifacts/InfluxDB%20Clustered%20README%20EULA%20July%202024.txt) + ### Highlights #### Grafana dashboards by default @@ -783,6 +891,12 @@ spec: image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20240111-824437 ``` +#### Release artifacts + +- [app-instance-schema.json](/downloads/clustered-release-artifacts/20240111-824437/app-instance-schema.json) +- [example-customer.yml](/downloads/clustered-release-artifacts/20240111-824437/example-customer.yml) +- [InfluxDB Clustered README EULA July 2024.txt](/downloads/clustered-release-artifacts/InfluxDB%20Clustered%20README%20EULA%20July%202024.txt) + ### Highlights #### Ingress improvements @@ -845,6 +959,12 @@ spec: image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20231213-791734 ``` +#### Release artifacts + +- [app-instance-schema.json](/downloads/clustered-release-artifacts/20231213-791734/app-instance-schema.json) +- [example-customer.yml](/downloads/clustered-release-artifacts/20231213-791734/example-customer.yml) +- [InfluxDB Clustered README EULA July 2024.txt](/downloads/clustered-release-artifacts/InfluxDB%20Clustered%20README%20EULA%20July%202024.txt) + ### Highlights #### Labels/annotations @@ -885,6 +1005,12 @@ spec: image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20231117-750011 ``` +#### Release artifacts + +- [app-instance-schema.json](/downloads/clustered-release-artifacts/20231117-750011/app-instance-schema.json) +- [example-customer.yml](/downloads/clustered-release-artifacts/20231117-750011/example-customer.yml) +- [InfluxDB Clustered README EULA July 2024.txt](/downloads/clustered-release-artifacts/InfluxDB%20Clustered%20README%20EULA%20July%202024.txt) + ### Highlights > ![Important] @@ -910,6 +1036,12 @@ spec: image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20231115-746129 ``` +#### Release artifacts + +- [app-instance-schema.json](/downloads/clustered-release-artifacts/20231115-746129/app-instance-schema.json) +- [example-customer.yml](/downloads/clustered-release-artifacts/20231115-746129/example-customer.yml) +- [InfluxDB Clustered README EULA July 2024.txt](/downloads/clustered-release-artifacts/InfluxDB%20Clustered%20README%20EULA%20July%202024.txt) + ### Highlights #### Ingress templating @@ -1022,6 +1154,12 @@ spec: image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20231024-711448 ``` +#### Release artifacts + +- [app-instance-schema.json](/downloads/clustered-release-artifacts/20231024-711448/app-instance-schema.json) +- [example-customer.yml](/downloads/clustered-release-artifacts/20231024-711448/example-customer.yml) +- [InfluxDB Clustered README EULA July 2024.txt](/downloads/clustered-release-artifacts/InfluxDB%20Clustered%20README%20EULA%20July%202024.txt) + ### Highlights #### Additional `AppInstance` parameters @@ -1083,6 +1221,12 @@ spec: image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20231004-666907 ``` +#### Release artifacts + +- [app-instance-schema.json](/downloads/clustered-release-artifacts/20231004-666907/app-instance-schema.json) +- [example-customer.yml](/downloads/clustered-release-artifacts/20231004-666907/example-customer.yml) +- [InfluxDB Clustered README EULA July 2024.txt](/downloads/clustered-release-artifacts/InfluxDB%20Clustered%20README%20EULA%20July%202024.txt) + ### Highlights #### Object store custom certificates @@ -1150,6 +1294,12 @@ spec: image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20230922-650371 ``` +#### Release artifacts + +- [app-instance-schema.json](/downloads/clustered-release-artifacts/20230922-650371/app-instance-schema.json) +- [example-customer.yml](/downloads/clustered-release-artifacts/20230922-650371/example-customer.yml) +- [InfluxDB Clustered README EULA July 2024.txt](/downloads/clustered-release-artifacts/InfluxDB%20Clustered%20README%20EULA%20July%202024.txt) + ### Highlights #### Configuration simplification @@ -1202,6 +1352,12 @@ spec: image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20230915-630658 ``` +#### Release artifacts + +- [app-instance-schema.json](/downloads/clustered-release-artifacts/20230915-630658/app-instance-schema.json) +- [example-customer.yml](/downloads/clustered-release-artifacts/20230915-630658/example-customer.yml) +- [InfluxDB Clustered README EULA July 2024.txt](/downloads/clustered-release-artifacts/InfluxDB%20Clustered%20README%20EULA%20July%202024.txt) + ### Highlights #### Persistent volume fixes @@ -1228,6 +1384,12 @@ spec: image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20230914-628600 ``` +#### Release artifacts + +- [app-instance-schema.json](/downloads/clustered-release-artifacts/20230914-628600/app-instance-schema.json) +- [example-customer.yml](/downloads/clustered-release-artifacts/20230914-628600/example-customer.yml) +- [InfluxDB Clustered README EULA July 2024.txt](/downloads/clustered-release-artifacts/InfluxDB%20Clustered%20README%20EULA%20July%202024.txt) + ### Highlights #### Updated Azure AD documentation @@ -1263,6 +1425,12 @@ spec: image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20230912-619813 ``` +#### Release artifacts + +- [app-instance-schema.json](/downloads/clustered-release-artifacts/20230912-619813/app-instance-schema.json) +- [example-customer.yml](/downloads/clustered-release-artifacts/20230912-619813/example-customer.yml) +- [InfluxDB Clustered README EULA July 2024.txt](/downloads/clustered-release-artifacts/InfluxDB%20Clustered%20README%20EULA%20July%202024.txt) + ### Highlights #### Custom CA certificates {note="(Optional)"} @@ -1333,6 +1501,12 @@ spec: image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20230911-604209 ``` +#### Release artifacts + +- [app-instance-schema.json](/downloads/clustered-release-artifacts/20230911-604209/app-instance-schema.json) +- [example-customer.yml](/downloads/clustered-release-artifacts/20230911-604209/example-customer.yml) +- [InfluxDB Clustered README EULA July 2024.txt](/downloads/clustered-release-artifacts/InfluxDB%20Clustered%20README%20EULA%20July%202024.txt) + ### Highlights This release contains a breaking change to the monitoring subsystem that @@ -1382,6 +1556,12 @@ spec: image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20230908-600131 ``` +#### Release artifacts + +- [app-instance-schema.json](/downloads/clustered-release-artifacts/20230908-600131/app-instance-schema.json) +- [example-customer.yml](/downloads/clustered-release-artifacts/20230908-600131/example-customer.yml) +- [InfluxDB Clustered README EULA July 2024.txt](/downloads/clustered-release-artifacts/InfluxDB%20Clustered%20README%20EULA%20July%202024.txt) + ### Highlights #### Default storage class @@ -1409,6 +1589,12 @@ spec: image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20230907-597343 ``` +#### Release artifacts + +- [app-instance-schema.json](/downloads/clustered-release-artifacts/20230907-597343/app-instance-schema.json) +- [example-customer.yml](/downloads/clustered-release-artifacts/20230907-597343/example-customer.yml) +- [InfluxDB Clustered README EULA July 2024.txt](/downloads/clustered-release-artifacts/InfluxDB%20Clustered%20README%20EULA%20July%202024.txt) + ### Upgrade Notes This release requires a new configuration block: diff --git a/content/influxdb3/clustered/write-data/use-telegraf/_index.md b/content/influxdb3/clustered/write-data/use-telegraf/_index.md index a0c1bc189..49d266833 100644 --- a/content/influxdb3/clustered/write-data/use-telegraf/_index.md +++ b/content/influxdb3/clustered/write-data/use-telegraf/_index.md @@ -39,7 +39,7 @@ Each Telegraf configuration must **have at least one input plugin and one output Telegraf input plugins retrieve metrics from different sources. Telegraf output plugins write those metrics to a destination. -Use the [`outputs.influxdb_v2`](/telegraf/v1/plugins/#output-influxdb_v2) plugin to write metrics collected by Telegraf to {{< product-name >}}. +Use the [`outputs.influxdb_v2`](/telegraf/v1/plugins/#output-influxdb_v2) plugin to write metrics collected by Telegraf to {{% product-name %}}. ```toml # ... diff --git a/content/influxdb3/clustered/write-data/use-telegraf/configure/_index.md b/content/influxdb3/clustered/write-data/use-telegraf/configure/_index.md index 2489bfa6b..f6d3c681e 100644 --- a/content/influxdb3/clustered/write-data/use-telegraf/configure/_index.md +++ b/content/influxdb3/clustered/write-data/use-telegraf/configure/_index.md @@ -112,7 +112,7 @@ For {{% product-name %}}, set this to an empty string (`""`). The name of the {{% product-name %}} database to write data to. > [!Note] -> ##### Write to InfluxDB v1.x and {{< product-name >}} +> ##### Write to InfluxDB v1.x and {{% product-name %}} > > If a Telegraf agent is already writing to an InfluxDB v1.x database, > enabling the InfluxDB v2 output plugin will write data to both v1.x and your {{< product-name omit="Clustered" >}} cluster. diff --git a/content/influxdb3/core/_index.md b/content/influxdb3/core/_index.md index 82dfea7d1..ef374524f 100644 --- a/content/influxdb3/core/_index.md +++ b/content/influxdb3/core/_index.md @@ -9,9 +9,10 @@ menu: influxdb3_core: name: InfluxDB 3 Core weight: 1 -source: /shared/v3-core-get-started/_index.md +source: /shared/influxdb3/_index.md --- \ No newline at end of file diff --git a/content/influxdb3/core/admin/distinct-value-cache/_index.md b/content/influxdb3/core/admin/distinct-value-cache/_index.md index cdf0b5837..5e9004280 100644 --- a/content/influxdb3/core/admin/distinct-value-cache/_index.md +++ b/content/influxdb3/core/admin/distinct-value-cache/_index.md @@ -16,4 +16,5 @@ source: /shared/influxdb3-admin/distinct-value-cache/_index.md --- +// SOURCE content/shared/influxdb3-admin/distinct-value-cache/_index.md +--> diff --git a/content/influxdb3/core/admin/last-value-cache/_index.md b/content/influxdb3/core/admin/last-value-cache/_index.md index 20013f73b..2560c1ead 100644 --- a/content/influxdb3/core/admin/last-value-cache/_index.md +++ b/content/influxdb3/core/admin/last-value-cache/_index.md @@ -17,4 +17,5 @@ source: /shared/influxdb3-admin/last-value-cache/_index.md --- +// SOURCE content/shared/influxdb3-admin/last-value-cache/_index.md +--> diff --git a/content/influxdb3/core/admin/tokens/_index.md b/content/influxdb3/core/admin/tokens/_index.md index 6ace87894..c4604b078 100644 --- a/content/influxdb3/core/admin/tokens/_index.md +++ b/content/influxdb3/core/admin/tokens/_index.md @@ -1,7 +1,7 @@ --- title: Manage tokens description: > - Manage tokens to authenticate and authorize access to resources and data in an {{< product-name >}} instance. + Manage tokens to authenticate and authorize access to server actions, resources, and data in an {{< product-name >}} instance. menu: influxdb3_core: parent: Administer InfluxDB @@ -11,4 +11,4 @@ source: /shared/influxdb3-admin/tokens/_index.md > \ No newline at end of file +--> \ No newline at end of file diff --git a/content/influxdb3/core/admin/tokens/admin/_index.md b/content/influxdb3/core/admin/tokens/admin/_index.md index ac5510003..f776fca98 100644 --- a/content/influxdb3/core/admin/tokens/admin/_index.md +++ b/content/influxdb3/core/admin/tokens/admin/_index.md @@ -11,9 +11,9 @@ menu: name: Admin tokens weight: 101 influxdb3/core/tags: [tokens] -source: /shared/influxdb3-admin/tokens/_index.md +source: /shared/influxdb3-admin/tokens/admin/_index.md --- \ No newline at end of file diff --git a/content/influxdb3/core/admin/tokens/admin/create.md b/content/influxdb3/core/admin/tokens/admin/create.md index fe1abbe5e..498c6cdef 100644 --- a/content/influxdb3/core/admin/tokens/admin/create.md +++ b/content/influxdb3/core/admin/tokens/admin/create.md @@ -2,7 +2,7 @@ title: Create an admin token description: > Use the [`influxdb3 create token --admin` command](/influxdb3/core/reference/cli/influxdb3/create/token/) - or the [HTTP API](/influxdb3/core/api/v3/) + or the HTTP API [`/api/v3/configure/token/admin`](/influxdb3/core/api/v3/#operation/PostCreateAdminToken) endpoint to create an [admin token](/influxdb3/core/admin/tokens/admin/) for your {{< product-name omit="Clustered" >}} instance. An admin token grants access to all actions on the server. menu: diff --git a/content/influxdb3/core/admin/tokens/admin/regenerate.md b/content/influxdb3/core/admin/tokens/admin/regenerate.md index fe7038826..f8e8d7ab9 100644 --- a/content/influxdb3/core/admin/tokens/admin/regenerate.md +++ b/content/influxdb3/core/admin/tokens/admin/regenerate.md @@ -2,10 +2,9 @@ title: Regenerate an admin token description: > Use the [`influxdb3 create token --admin` command](/influxdb3/core/reference/cli/influxdb3/create/token/) - or the [HTTP API](/influxdb3/core/api/v3/) - to regenerate an [admin token](/influxdb3/core/admin/tokens/admin/) for your {{< product-name omit="Clustered" >}} instance. - An admin token grants access to all actions on the server. - Regenerating an admin token deactivates the previous token. + or the HTTP API [`/api/v3/configure/token/admin/regenerate`](/influxdb3/core/api/v3/#operation/PostRegenerateAdminToken) endpoint + to regenerate an [operator token](/influxdb3/core/admin/tokens/admin/) for your {{< product-name omit="Clustered" >}} instance. + Regenerating an operator token deactivates the previous token. menu: influxdb3_core: parent: Admin tokens @@ -14,8 +13,15 @@ list_code_example: | ##### CLI ```bash influxdb3 create token --admin \ - --token ADMIN_TOKEN \ --regenerate + OPERATOR_TOKEN + ``` + #### HTTP API + ```bash + curl -X POST "http://{{< influxdb/host >}}/api/v3/configure/token/admin/regenerate" \ + --header 'Authorization Bearer OPERATOR_TOKEN' \ + --header 'Accept: application/json' + --header 'Content-Type: application/json' ``` source: /shared/influxdb3-admin/tokens/admin/regenerate.md --- diff --git a/content/influxdb3/core/get-started/_index.md b/content/influxdb3/core/get-started/_index.md index fd81839af..16398f32f 100644 --- a/content/influxdb3/core/get-started/_index.md +++ b/content/influxdb3/core/get-started/_index.md @@ -13,7 +13,7 @@ related: - /influxdb3/core/admin/query-system-data/ - /influxdb3/core/write-data/ - /influxdb3/core/query-data/ -source: /shared/v3-core-get-started/_index.md +source: /shared/influxdb3-get-started/_index.md prepend: | > [!Note] > InfluxDB 3 Core is purpose-built for real-time data monitoring and recent data. @@ -26,5 +26,5 @@ prepend: | diff --git a/content/influxdb3/core/install.md b/content/influxdb3/core/install.md index 08535f63a..a423ff48c 100644 --- a/content/influxdb3/core/install.md +++ b/content/influxdb3/core/install.md @@ -12,7 +12,7 @@ alt_links: - [System Requirements](#system-requirements) - [Quick install](#quick-install) -- [Download {{< product-name >}} binaries](#download-influxdb-3-{{< product-key >}}-binaries) +- [Download {{% product-name %}} binaries](#download-influxdb-3-{{< product-key >}}-binaries) - [Docker image](#docker-image) ## System Requirements @@ -79,7 +79,7 @@ source ~/.zshrc {{% /code-tab-content %}} {{< /code-tabs-wrapper >}} -## Download {{< product-name >}} binaries +## Download {{% product-name %}} binaries {{< tabs-wrapper >}} {{% tabs %}} diff --git a/content/influxdb3/core/reference/cli/influxdb3/_index.md b/content/influxdb3/core/reference/cli/influxdb3/_index.md index efa782e42..221e4e654 100644 --- a/content/influxdb3/core/reference/cli/influxdb3/_index.md +++ b/content/influxdb3/core/reference/cli/influxdb3/_index.md @@ -103,7 +103,7 @@ influxdb3 -h influxdb3 --help ``` -### Run the {{< product-name >}} server with extra verbose logging +### Run the {{% product-name %}} server with extra verbose logging @@ -114,7 +114,7 @@ influxdb3 serve -v \ --node-id my-host-01 ``` -### Run {{< product-name >}} with debug logging using LOG_FILTER +### Run {{% product-name %}} with debug logging using LOG_FILTER diff --git a/content/influxdb3/core/reference/cli/influxdb3/create/token.md b/content/influxdb3/core/reference/cli/influxdb3/create/token/_index.md similarity index 60% rename from content/influxdb3/core/reference/cli/influxdb3/create/token.md rename to content/influxdb3/core/reference/cli/influxdb3/create/token/_index.md index a27d89942..c85988446 100644 --- a/content/influxdb3/core/reference/cli/influxdb3/create/token.md +++ b/content/influxdb3/core/reference/cli/influxdb3/create/token/_index.md @@ -5,11 +5,11 @@ description: > menu: influxdb3_core: parent: influxdb3 create - name: influxdb3 create token + name: influxdb3 create token weight: 400 -source: /shared/influxdb3-cli/create/token.md +source: /shared/influxdb3-cli/create/token/_index.md --- \ No newline at end of file diff --git a/content/influxdb3/core/reference/cli/influxdb3/create/token/admin.md b/content/influxdb3/core/reference/cli/influxdb3/create/token/admin.md new file mode 100644 index 000000000..a2646e4ec --- /dev/null +++ b/content/influxdb3/core/reference/cli/influxdb3/create/token/admin.md @@ -0,0 +1,15 @@ +--- +title: influxdb3 create token admin +description: > + The `influxdb3 create token admin` command creates an operator token or named admin token with full administrative privileges for server actions. +menu: + influxdb3_core: + parent: influxdb3 create token + name: influxdb3 create token admin +weight: 400 +source: /shared/influxdb3-cli/create/token/admin.md +--- + + \ No newline at end of file diff --git a/content/influxdb3/core/reference/cli/influxdb3/test/schedule_plugin.md b/content/influxdb3/core/reference/cli/influxdb3/test/schedule_plugin.md new file mode 100644 index 000000000..d866d2854 --- /dev/null +++ b/content/influxdb3/core/reference/cli/influxdb3/test/schedule_plugin.md @@ -0,0 +1,15 @@ +--- +title: influxdb3 test schedule_plugin +description: > + The `influxdb3 test schedule_plugin` command tests a schedule plugin file without needing to create a trigger. +menu: + influxdb3_core: + parent: influxdb3 test + name: influxdb3 test schedule_plugin +weight: 401 +source: /shared/influxdb3-cli/test/schedule_plugin.md +--- + + diff --git a/content/influxdb3/enterprise/_index.md b/content/influxdb3/enterprise/_index.md index df990c211..bcf454928 100644 --- a/content/influxdb3/enterprise/_index.md +++ b/content/influxdb3/enterprise/_index.md @@ -9,9 +9,10 @@ menu: influxdb3_enterprise: name: InfluxDB 3 Enterprise weight: 1 -source: /shared/v3-enterprise-get-started/_index.md +source: /shared/influxdb3/_index.md --- diff --git a/content/influxdb3/enterprise/admin/license.md b/content/influxdb3/enterprise/admin/license.md index 38f6ac503..cb1f1bf37 100644 --- a/content/influxdb3/enterprise/admin/license.md +++ b/content/influxdb3/enterprise/admin/license.md @@ -153,7 +153,7 @@ existing license if it's still valid. environment variable 7. If no license is found, the server won't start -#### Example: Start the {{< product-name >}} server with your license email: +#### Example: Start the {{% product-name %}} server with your license email: {{< code-tabs-wrapper >}} {{% code-tabs %}} @@ -187,7 +187,7 @@ influxdb3 serve \ {{% /code-tab-content %}} {{< /code-tabs-wrapper >}} -#### Example: Start the {{< product-name >}} server with your license file: +#### Example: Start the {{% product-name %}} server with your license file: {{< code-tabs-wrapper >}} {{% code-tabs %}} diff --git a/content/influxdb3/enterprise/admin/tokens/_index.md b/content/influxdb3/enterprise/admin/tokens/_index.md index 85bfad732..6c9a079ea 100644 --- a/content/influxdb3/enterprise/admin/tokens/_index.md +++ b/content/influxdb3/enterprise/admin/tokens/_index.md @@ -1,7 +1,7 @@ --- title: Manage tokens description: > - Manage tokens to authenticate and authorize access to resources and data in an {{< product-name >}} instance. + Manage tokens to authenticate and authorize access to server actions, resources, and data in an {{< product-name >}} instance. menu: influxdb3_enterprise: parent: Administer InfluxDB diff --git a/content/influxdb3/enterprise/admin/tokens/admin/create.md b/content/influxdb3/enterprise/admin/tokens/admin/create.md index 64530b6ef..9c821b4ab 100644 --- a/content/influxdb3/enterprise/admin/tokens/admin/create.md +++ b/content/influxdb3/enterprise/admin/tokens/admin/create.md @@ -2,8 +2,8 @@ title: Create an admin token description: > Use the [`influxdb3 create token --admin` command](/influxdb3/enterprise/reference/cli/influxdb3/create/token/) - or the [HTTP API](/influxdb3/enterprise/api/v3/) - to create an [admin token](/influxdb3/enterprise/admin/tokens/admin/) for your {{< product-name omit="Clustered" >}} instance. + or the HTTP API [`/api/v3/configure/token/admin`](/influxdb3/enterprise/api/v3/#operation/PostCreateAdminToken) + endpoint to create an operator or named [admin token](/influxdb3/enterprise/admin/tokens/admin/) for your {{< product-name omit="Clustered" >}} instance. An admin token grants access to all actions on the server. menu: influxdb3_enterprise: @@ -12,13 +12,15 @@ weight: 201 list_code_example: | ##### CLI ```bash - influxdb3 create token --admin + influxdb3 create token --admin --name TOKEN_NAME ``` #### HTTP API ```bash curl -X POST "http://{{< influxdb/host >}}/api/v3/configure/token/admin" \ - --header 'Accept: application/json' \ - --header 'Content-Type: application/json' + --header 'Authorization Bearer ADMIN_TOKEN' \ + --json '{ + "name": "TOKEN_NAME" + }' ``` alt_links: cloud-dedicated: /influxdb3/cloud-dedicated/admin/tokens/create-token/ diff --git a/content/influxdb3/enterprise/admin/tokens/admin/regenerate.md b/content/influxdb3/enterprise/admin/tokens/admin/regenerate.md index f595ce3b5..7da106f73 100644 --- a/content/influxdb3/enterprise/admin/tokens/admin/regenerate.md +++ b/content/influxdb3/enterprise/admin/tokens/admin/regenerate.md @@ -1,10 +1,9 @@ --- -title: Regenerate an admin token +title: Regenerate an operator admin token description: > Use the [`influxdb3 create token --admin` command](/influxdb3/enterprise/reference/cli/influxdb3/create/token/) or the [HTTP API](/influxdb3/enterprise/api/v3/) - to regenerate an [admin token](/influxdb3/enterprise/admin/tokens/admin/) for your {{< product-name omit="Clustered" >}} instance. - An admin token grants access to all actions on the server. + to regenerate an [operator token](/influxdb3/enterprise/admin/tokens/admin/) for your {{< product-name omit="Clustered" >}} instance. Regenerating an admin token deactivates the previous token. menu: influxdb3_enterprise: @@ -14,9 +13,15 @@ list_code_example: | ##### CLI ```bash influxdb3 create token --admin \ - --token ADMIN_TOKEN \ + --token OPERATOR_TOKEN \ --regenerate ``` + + #### HTTP API + ```bash + curl -X POST "http://{{< influxdb/host >}}/api/v3/configure/token/admin/regenerate" \ + --header 'Authorization Bearer OPERATOR_TOKEN' + ``` source: /shared/influxdb3-admin/tokens/admin/regenerate.md --- diff --git a/content/influxdb3/enterprise/admin/tokens/resource/_index.md b/content/influxdb3/enterprise/admin/tokens/resource/_index.md index 2d66b6888..2e9aecb80 100644 --- a/content/influxdb3/enterprise/admin/tokens/resource/_index.md +++ b/content/influxdb3/enterprise/admin/tokens/resource/_index.md @@ -3,7 +3,7 @@ title: Manage resource tokens seotitle: Manage resource tokens in {{< product-name >}} description: > Manage resource tokens in your {{< product-name >}} instance. - Resource tokens grant fine-grained permissions on resources, such as databases + Resource tokens grant permissions on specific resources, such as databases and system information endpoints in your {{< product-name >}} instance. Database resource tokens allow for actions like writing and querying data. menu: @@ -15,13 +15,12 @@ influxdb3/enterprise/tags: [tokens] --- Manage resource tokens in your {{< product-name >}} instance. -Resource tokens grant fine-grained permissions on resources, such as databases -and system information endpoints in your {{< product-name >}} instance. - -- **Databases**: Database tokens allow for actions like writing and querying data. +Resource tokens provide scoped access to specific resources: -- **System resources**: System information tokens allow read access to server runtime statistics and health. - Access controls for system information API endpoints help prevent information leaks and attacks (such as DoS). +- **Database tokens**: provide access to specific databases for actions like writing and querying data +- **System tokens**: provide access to system-level resources, such as API endpoints for server runtime statistics and health. + +Resource tokens are user-defined and available only in {{% product-name %}}. {{< children depth="1" >}} diff --git a/content/influxdb3/enterprise/get-started/_index.md b/content/influxdb3/enterprise/get-started/_index.md index 8255d737d..f14095083 100644 --- a/content/influxdb3/enterprise/get-started/_index.md +++ b/content/influxdb3/enterprise/get-started/_index.md @@ -13,10 +13,10 @@ related: - /influxdb3/enterprise/admin/query-system-data/ - /influxdb3/enterprise/write-data/ - /influxdb3/enterprise/query-data/ -source: /shared/v3-enterprise-get-started/_index.md +source: /shared/influxdb3-get-started/_index.md --- diff --git a/content/influxdb3/enterprise/install.md b/content/influxdb3/enterprise/install.md index 90ae37ae1..3893d08d1 100644 --- a/content/influxdb3/enterprise/install.md +++ b/content/influxdb3/enterprise/install.md @@ -12,7 +12,7 @@ alt_links: - [System Requirements](#system-requirements) - [Quick install](#quick-install) -- [Download {{< product-name >}} binaries](#download-influxdb-3-{{< product-key >}}-binaries) +- [Download {{% product-name %}} binaries](#download-influxdb-3-{{< product-key >}}-binaries) - [Docker image](#docker-image) ## System Requirements @@ -79,7 +79,7 @@ source ~/.zshrc {{% /code-tab-content %}} {{< /code-tabs-wrapper >}} -## Download {{< product-name >}} binaries +## Download {{% product-name %}} binaries {{< tabs-wrapper >}} {{% tabs %}} diff --git a/content/influxdb3/enterprise/reference/cli/influxdb3/_index.md b/content/influxdb3/enterprise/reference/cli/influxdb3/_index.md index 46eaaff51..db57936cb 100644 --- a/content/influxdb3/enterprise/reference/cli/influxdb3/_index.md +++ b/content/influxdb3/enterprise/reference/cli/influxdb3/_index.md @@ -108,7 +108,7 @@ influxdb3 -h influxdb3 --help ``` -### Run the {{< product-name >}} server with extra verbose logging +### Run the {{% product-name %}} server with extra verbose logging @@ -120,7 +120,7 @@ influxdb3 serve -v \ --cluster-id my-cluster-01 ``` -### Run {{< product-name >}} with debug logging using LOG_FILTER +### Run {{% product-name %}} with debug logging using LOG_FILTER diff --git a/content/influxdb3/enterprise/reference/cli/influxdb3/create/token.md b/content/influxdb3/enterprise/reference/cli/influxdb3/create/token.md deleted file mode 100644 index 968bbde4c..000000000 --- a/content/influxdb3/enterprise/reference/cli/influxdb3/create/token.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: influxdb3 create token -description: > - The `influxdb3 create token` command creates a new authentication token. -menu: - influxdb3_enterprise: - parent: influxdb3 create - name: influxdb3 create token -weight: 400 -source: /shared/influxdb3-cli/create/token.md ---- - - diff --git a/content/influxdb3/enterprise/reference/cli/influxdb3/create/token/_index.md b/content/influxdb3/enterprise/reference/cli/influxdb3/create/token/_index.md index daffcce7d..1411c22bf 100644 --- a/content/influxdb3/enterprise/reference/cli/influxdb3/create/token/_index.md +++ b/content/influxdb3/enterprise/reference/cli/influxdb3/create/token/_index.md @@ -1,19 +1,16 @@ --- title: influxdb3 create token description: > - The `influxdb3 create token` command creates an admin token or a resource (fine-grained - permissions) token for authenticating and authorizing actions in an {{% product-name %}} instance. + The `influxdb3 create token` command creates an admin token or a scoped resource token for authenticating and authorizing actions in an {{% product-name %}} instance. menu: influxdb3_enterprise: parent: influxdb3 name: influxdb3 create token weight: 300 -aliases: - - /influxdb3/enterprise/reference/cli/influxdb3/create/token/admin/ -source: /shared/influxdb3-cli/create/token.md +source: /shared/influxdb3-cli/create/token/_index.md --- \ No newline at end of file diff --git a/content/influxdb3/enterprise/reference/cli/influxdb3/create/token/admin.md b/content/influxdb3/enterprise/reference/cli/influxdb3/create/token/admin.md new file mode 100644 index 000000000..7c4bab6bc --- /dev/null +++ b/content/influxdb3/enterprise/reference/cli/influxdb3/create/token/admin.md @@ -0,0 +1,15 @@ +--- +title: influxdb3 create token admin +description: > + The `influxdb3 create token admin` command creates an operator token or named admin token with full administrative privileges for server actions. +menu: + influxdb3_enterprise: + parent: influxdb3 create token + name: influxdb3 create token admin +weight: 400 +source: /shared/influxdb3-cli/create/token/admin.md +--- + + \ No newline at end of file diff --git a/content/influxdb3/enterprise/reference/cli/influxdb3/test/schedule_plugin.md b/content/influxdb3/enterprise/reference/cli/influxdb3/test/schedule_plugin.md new file mode 100644 index 000000000..8d5682bf6 --- /dev/null +++ b/content/influxdb3/enterprise/reference/cli/influxdb3/test/schedule_plugin.md @@ -0,0 +1,15 @@ +--- +title: influxdb3 test schedule_plugin +description: > + The `influxdb3 test schedule_plugin` command tests a schedule plugin file without needing to create a trigger. +menu: + influxdb3_enterprise: + parent: influxdb3 test + name: influxdb3 test schedule_plugin +weight: 401 +source: /shared/influxdb3-cli/test/schedule_plugin.md +--- + + \ No newline at end of file diff --git a/content/influxdb3/enterprise/reference/internals/authentication.md b/content/influxdb3/enterprise/reference/internals/authentication.md index 95ebeac5a..1df9cc97f 100644 --- a/content/influxdb3/enterprise/reference/internals/authentication.md +++ b/content/influxdb3/enterprise/reference/internals/authentication.md @@ -14,5 +14,5 @@ source: /shared/influxdb3-internals-reference/authentication.md --- \ No newline at end of file +// SOURCE content/shared/influxdb3-internals-reference/authentication.md +--> \ No newline at end of file diff --git a/content/influxdb3/explorer/_index.md b/content/influxdb3/explorer/_index.md new file mode 100644 index 000000000..5078f75bb --- /dev/null +++ b/content/influxdb3/explorer/_index.md @@ -0,0 +1,48 @@ +--- +title: InfluxDB 3 Explorer documentation +description: > + InfluxDB 3 Explorer is a standalone web-based interface for interacting with InfluxDB 3 Core and Enterprise. Visualize, query, and manage your time series data efficiently. +menu: + influxdb3_explorer: + name: InfluxDB 3 Explorer +weight: 1 +--- + +InfluxDB 3 Explorer is the standalone web application designed for visualizing, querying, and managing your data stored in InfluxDB 3 Core and Enterprise. +Explorer provides an intuitive interface for interacting with your time series data, streamlining database operations and enhancing data insights. + +> [!Important] +> #### InfluxDB 3 Core or Enterprise v3.1.0 or later required +> +> InfluxDB 3 Explorer is compatible with the following: +> +> - [InfluxDB 3 Core v3.1.0 or later](/influxdb3/core/install/) +> - [InfluxDB 3 Enterprise v3.1.0 or later](/influxdb3/enterprise/install/) + +## Key features + +Use InfluxDB 3 Explorer for: + +- **Database and query management**: Create and manage InfluxDB 3 databases, admin and resource tokens, and configure new InfluxDB 3 Enterprise instances +- **Data visualization and analysis**: Query data with a built-in visualizer for enhanced data insights +- **Data ingestion**: Write new data and setup Telegraf configurations + +## Quick start + +Run the Docker image to start InfluxDB 3 Explorer: + +```sh +# Pull the Docker image +docker pull quay.io/influxdb/influxdb3-explorer:latest + +# Run the Docker container +docker run --detach \ + --name influxdb3-explorer \ + --publish 8888:80 \ + --publish 8889:8888 \ + quay.io/influxdb/influxdb3-explorer:latest \ + --mode=admin +``` + +Install and run InfluxDB 3 Explorer +Get started with InfluxDB 3 Explorer diff --git a/content/influxdb3/explorer/about/_index.md b/content/influxdb3/explorer/about/_index.md new file mode 100644 index 000000000..9054300a4 --- /dev/null +++ b/content/influxdb3/explorer/about/_index.md @@ -0,0 +1,28 @@ +--- +title: About the InfluxDB 3 Explorer project +description: > + Learn about InfluxDB 3 Explorer, the user interface and query tool for InfluxDB 3. +menu: + influxdb3_explorer: + name: About Explorer +weight: 10 +--- + +InfluxDB 3 Explorer is the user interface component of the InfluxDB 3 platform. +It provides visual management of databases and tokens and an easy way to querying +your time series data. Explorer is fully-featured for [InfluxDB 3 Core](/influxdb3/core/) +and [Enterprise](/influxdb3/enterprise/). In a future release it will also be able to +be used to query [InfluxDB Cloud Serverless](/influxdb3/cloud-serverless/), +[InfluxDB Cloud Dedicated](/influxdb3/cloud-dedicated/) +and [InfluxDB Clustered](/influxdb3/clustered/). + +## Third Party Software + +InfluxData products contain third party software, which means the copyrighted, +patented, or otherwise legally protected software of third parties that is +incorporated in InfluxData products. + +Third party suppliers make no representation nor warranty with respect to such +third party software or any portion thereof. Third party suppliers assume no +liability for any claim that might arise with respect to such third party software, +nor for a customer’s use of or inability to use the third party software. diff --git a/content/influxdb3/explorer/get-started/_index.md b/content/influxdb3/explorer/get-started/_index.md new file mode 100644 index 000000000..e15e4a3c4 --- /dev/null +++ b/content/influxdb3/explorer/get-started/_index.md @@ -0,0 +1,14 @@ +--- +title: Get started using InfluxDB 3 Explorer +description: Follow steps to get started using InfluxDB 3 Explorer. +menu: + influxdb3_explorer: + name: Get started +weight: 3 +--- + +Follow steps to get started using InfluxDB 3 Explorer. + +{{< youtube "zW2Hi1Ki4Eo" >}} + + diff --git a/content/influxdb3/explorer/get-started/connect.md b/content/influxdb3/explorer/get-started/connect.md new file mode 100644 index 000000000..7d717c024 --- /dev/null +++ b/content/influxdb3/explorer/get-started/connect.md @@ -0,0 +1,12 @@ +--- +title: Connect to a server +description: + Use InfluxDB 3 Explorer to connect to an InfluxDB 3 server. +menu: + influxdb3_explorer: + parent: Get started +weight: 101 +draft: true +--- + +Use InfluxDB 3 Explorer to connect to an InfluxDB 3 server. \ No newline at end of file diff --git a/content/influxdb3/explorer/install.md b/content/influxdb3/explorer/install.md new file mode 100644 index 000000000..a1858d2a2 --- /dev/null +++ b/content/influxdb3/explorer/install.md @@ -0,0 +1,222 @@ +--- +title: Install and run InfluxDB 3 Explorer +description: > + Use [Docker](https://docker.com) to install and run **InfluxDB 3 Explorer**. +menu: + influxdb3_explorer: + name: Install Explorer +weight: 2 +--- + +Use [Docker](https://docker.com) to install and run **InfluxDB 3 Explorer**. + + +- [Run the InfluxDB 3 Explorer Docker container](#run-the-influxdb-3-explorer-docker-container) +- [Enable TLS/SSL (HTTPS)](#enable-tlsssl-https) +- [Pre-configure InfluxDB connection settings](#pre-configure-influxdb-connection-settings) +- [Run in query or admin mode](#run-in-query-or-admin-mode) + - [Run in query mode](#run-in-query-mode) + - [Run in admin mode](#run-in-admin-mode) +- [Environment Variables](#environment-variables) +- [Volume Reference](#volume-reference) +- [Exposed Ports](#exposed-ports) + - [Custom port mapping](#custom-port-mapping) + + +## Run the InfluxDB 3 Explorer Docker container + +1. **Install Docker** + + If you haven't already, install [Docker](https://docs.docker.com/engine/) or + [Docker Desktop](https://docs.docker.com/desktop/). + +2. **Pull the {{% product-name %}} Docker image** + + ```bash + docker pull quay.io/influxdb/influxdb3-explorer:latest + ``` + +3. **Create local directories** _(optional)_ + + {{% product-name %}} can mount the following directories on your local + machine: + + | Directory | Description | Permissions | + | :--------- | :------------------------------------------------------------------------------------------------ | :---------: | + | `./db` | Stores {{% product-name %}} application data | 700 | + | `./config` | Stores [pre-configured InfluxDB connection settings](#pre-configure-influxdb-connection-settings) | 755 | + | `./ssl` | Stores TLS/SSL certificates _(Required when [using TLS/SSL](#enable-tlsssl-https))_ | 755 | + + > [!Important] + > If you don't create and mount a local `./db` directory, {{% product-name %}} + > stores application data in the container's file system. + > This data will be lost when the container is deleted. + + To create these directories with the appropriate permissions, run the + following commands from your current working directory: + + ```bash + mkdir -m 700 ./db + mkdir -m 755 ./config + mkdir -m 755 ./ssl + ``` + +4. **Run the {{% product-name %}} container** + + Use the `docker run` command to start the {{% product-name %}} container. + Include the following: + + - Port mappings: + - `8888` to `80` (or `443` if using TLS/SSL) + - `8889` to `8888` + - Mounted volumes: + - `$(pwd)/db:/db:rw` + - `$(pwd)/config:/app-root/config:ro` + - `$(pwd)/ssl:/etc/nginx/ssl:ro` + - Any of the available [environment variables](#environment-variables) + + ```bash + docker run --detach \ + --name influxdb3-explorer \ + --publish 8888:80 \ + --publish 8889:8888 \ + --volume $(pwd)/config:/app-root/config:ro \ + --volume $(pwd)/db:/db:rw \ + --volume $(pwd)/ssl:/etc/nginx/ssl:ro \ + quay.io/influxdb/influxdb3-explorer:latest \ + --mode=admin + ``` + +5. **Access the {{% product-name %}} user interface (UI) at **. + +--- + +## Enable TLS/SSL (HTTPS) + +To enable TLS/SSL, mount valid certificate and key files into the container: + +1. **Place your TLS/SSL certificate files your local `./ssl` directory** + + Required files: + + - Certificate: `server.crt` or `fullchain.pem` + - Private key: `server.key` + +2. **When running your container, mount the SSL directory and map port 443 to port 8888** + + Include the following options when running your Docker container: + + ```sh + --volume $(pwd)/ssl:/etc/nginx/ssl:ro \ + --publish 8888:443 + ``` + +The nginx web server automatically uses certificate files when they are present +in the mounted path. + +--- + +## Pre-configure InfluxDB connection settings + +You can predefine InfluxDB connection settings using a `config.json` file. + +{{% code-placeholders "INFLUXDB3_HOST|INFLUXDB_DATABASE_NAME|INFLUXDB3_AUTH_TOKEN|INFLUXDB3_SERVER_NAME" %}} + +1. **Create a `config.json` file in your local `./config` directory** + + ```json + { + "DEFAULT_INFLUX_SERVER": "INFLUXDB3_HOST", + "DEFAULT_INFLUX_DATABASE": "INFLUXDB_DATABASE_NAME", + "DEFAULT_API_TOKEN": "INFLUXDB3_AUTH_TOKEN", + "DEFAULT_SERVER_NAME": "INFLUXDB3_SERVER_NAME" + } + ``` + + > [!Important] + > If connecting to an InfluxDB 3 Core or Enterprise instance running on + > localhost (outside of the container), use the internal Docker network to + > in your InfluxDB 3 host value--for example: + > + > ```txt + > http://host.docker.internal:8181 + > ``` + +2. **Mount the configuration directory** + + Include the following option when running your Docker container: + + ```sh + --volume $(pwd)/config:/app-root/config:ro + ``` + +{{% /code-placeholders %}} + +These settings will be used as defaults when the container starts. + +--- + +## Run in query or admin mode + +{{% product-name %}} has the following operational modes: + +- **Query mode (default):** Read-only UI and query interface +- **Admin mode:** Full UI and API access for administrators + +You can control the operational mode using the `--mode=` option in your +`docker run` command (after the image name). + +### Run in query mode {note="(default)"} + +```sh +docker run \ + ... + --mode=query +``` + +### Run in admin mode + +```sh +docker run \ + ... + --mode=admin +``` + +If `--mode` is not set, the container defaults to query mode. + +--- + +## Environment Variables + +Use the following environment variables to customize {{% product-name %}} settings +in your container. + +| Variable | Description | Default | +|----------------|--------------------------------------------------|----------------------| +| `DATABASE_URL` | Path to SQLite DB inside container | `/db/sqlite.db` | + +--- + +## Volume Reference + +| Container Path | Purpose | Host Example | +|----------------------|------------------------------|----------------------------| +| `/db` | SQLite DB storage | `./db` | +| `/app-root/config` | JSON config for defaults | `./config` | +| `/etc/nginx/ssl` | SSL certs for HTTPS | `./ssl` | + +--- + +## Exposed Ports + +| Port | Protocol | Purpose | +|------|----------|-------------------------| +| 80 | HTTP | Web access (unencrypted) | +| 443 | HTTPS | Web access (encrypted) | + +### Custom port mapping + +```sh +# Map ports to custom host values +--publish 8888:80 --publish 8443:443 +``` diff --git a/content/kapacitor/v1/guides/anomaly_detection.md b/content/kapacitor/v1/guides/anomaly_detection.md index 1009c943b..f1a91261d 100644 --- a/content/kapacitor/v1/guides/anomaly_detection.md +++ b/content/kapacitor/v1/guides/anomaly_detection.md @@ -407,15 +407,15 @@ if __name__ == '__main__': agent.handler = h # Anything printed to STDERR from a UDF process gets captured into the Kapacitor logs. - print >> sys.stderr, "Starting agent for TTestHandler" + print("Starting agent for TTestHandler", file=sys.stderr) agent.start() agent.wait() - print >> sys.stderr, "Agent finished" + print("Agent finished", file=sys.stderr) ``` That was a lot, but now we are ready to configure Kapacitor to run our -code. Create a scratch dir for working through the rest of this +code. Make sure that `scipy` is installed (`$ pip3 install scipy`). Create a scratch dir for working through the rest of this guide: ```bash @@ -434,7 +434,7 @@ Add this snippet to your Kapacitor configuration file (typically located at `/et [udf.functions] [udf.functions.tTest] # Run python - prog = "/usr/bin/python2" + prog = "/usr/bin/python3" # Pass args to python # -u for unbuffered STDIN and STDOUT # and the path to the script @@ -468,8 +468,8 @@ correctly: service kapacitor restart ``` -Check the logs (`/var/log/kapacitor/`) to make sure you see a -*Listening for signals* line and that no errors occurred. If you +Check the logs (`/var/log/kapacitor/` or `journalctl -f -n 256 -u kapacitor.service`) to make sure you see a +_Listening for signals_ line and that no errors occurred. If you don't see the line, it's because the UDF process is hung and not responding. It should be killed after a timeout, so give it a moment to stop properly. Once stopped, you can fix any errors and try again. @@ -544,6 +544,20 @@ the Kapacitor task: kapacitor define print_temps -tick print_temps.tick ``` +Ensure that the task is enabled: + +```bash +kapacitor enable print_temps +``` + +And then list the tasks: + +```bash +kapacitor list tasks +ID Type Status Executing Databases and Retention Policies +print_temps stream enabled true ["printer"."autogen"] +``` + ### Generating test data To simulate our printer for testing, we will write a simple Python @@ -557,7 +571,7 @@ to use real data for testing our TICKscript and UDF, but this is faster (and much cheaper than a 3D printer). ```python -#!/usr/bin/python2 +#!/usr/bin/env python from numpy import random from datetime import timedelta, datetime @@ -672,7 +686,11 @@ fake data so that we can easily iterate on the task: ```sh # Start the recording in the background kapacitor record stream -task print_temps -duration 24h -no-wait -# Grab the ID from the output and store it in a var +# List recordings to find the ID +kapacitor list recordings +ID Type Status Size Date +7bd3ced5-5e95-4a67-a0e1-f00860b1af47 stream running 0 B 04 May 16 11:34 MDT +# Copy the ID and store it in a variable rid=7bd3ced5-5e95-4a67-a0e1-f00860b1af47 # Run our python script to generate data chmod +x ./printer_data.py diff --git a/content/kapacitor/v1/reference/about_the_project/release-notes.md b/content/kapacitor/v1/reference/about_the_project/release-notes.md index 4fb722a07..beb05a02a 100644 --- a/content/kapacitor/v1/reference/about_the_project/release-notes.md +++ b/content/kapacitor/v1/reference/about_the_project/release-notes.md @@ -9,6 +9,22 @@ aliases: - /kapacitor/v1/about_the_project/releasenotes-changelog/ --- +## v1.7.7 {date="2025-05-27"} + +> [!Warning] +> #### Python 2 UDFs deprecated +> +> Python 2-based UDFs are deprecated** as of Kapacitor 1.7.7 and will be removed in **Kapacitor 1.8.0**. +> +> In preparation for Kapacitor 1.8.0, update your User-Defined Functions (UDFs) to be Python 3-compatible. +> This required change aligns with modern security practices and ensures your custom functions will continue to work after upgrading. + +### Dependency updates + +- Upgrade Go to 1.22.12. + +--- + ## v1.7.6 {date="2024-10-28"} ### Features @@ -105,7 +121,7 @@ aliases: ### Bug fixes - Update the `Kafka` client to fix a bug regarding write latency. -- Update to [Flux v0.171.0](/flux/v0.x/release-notes/#v01710) to fix "interface {} is nil, not string" issue. +- Update to [Flux v0.171.0](/flux/v0/release-notes/#v01710) to fix "interface {} is nil, not string" issue. --- diff --git a/content/resources/how-to-guides/assigning-more-than-four-states.md b/content/resources/how-to-guides/assigning-more-than-four-states.md index 8b54d8c9e..eda43b7b1 100644 --- a/content/resources/how-to-guides/assigning-more-than-four-states.md +++ b/content/resources/how-to-guides/assigning-more-than-four-states.md @@ -8,7 +8,7 @@ menu: weight: 101 --- ## Problem -You may want to use the [`monitor` package](/flux/v0.x/stdlib/influxdata/influxdb/monitor/) and take advantage of functions like [monitor.stateChangesOnly()](/flux/v0.x/stdlib/influxdata/influxdb/monitor/statechangesonly/). However, `monitor.stateChangesOnly()` only allows you to monitor four states: "crit", "warn", "ok", and "info". What if you want to be able to assign and monitor state changes across custom states or more than four states? +You may want to use the [`monitor` package](/flux/v0/stdlib/influxdata/influxdb/monitor/) and take advantage of functions like [monitor.stateChangesOnly()](/flux/v0/stdlib/influxdata/influxdb/monitor/statechangesonly/). However, `monitor.stateChangesOnly()` only allows you to monitor four states: "crit", "warn", "ok", and "info". What if you want to be able to assign and monitor state changes across custom states or more than four states? ## Solution Define your own custom `stateChangesOnly()` function. Use the function from the source code here and alter it to accommodate more than four levels. Here we account for six different levels instead of just four. @@ -42,7 +42,7 @@ stateChangesOnly = (tables=<-) => { } ``` -Construct some example data with [`array.from()`](/flux/v0.x/stdlib/array/from/) and map custom levels to it: +Construct some example data with [`array.from()`](/flux/v0/stdlib/array/from/) and map custom levels to it: ```js array.from( diff --git a/content/resources/how-to-guides/reduce-to-construct-JSON.md b/content/resources/how-to-guides/reduce-to-construct-JSON.md index 904a80c0a..ee19ec22d 100644 --- a/content/resources/how-to-guides/reduce-to-construct-JSON.md +++ b/content/resources/how-to-guides/reduce-to-construct-JSON.md @@ -9,9 +9,9 @@ weight: 105 --- ## Send data in JSON body with `http.post()` -Use the [reduce()](/flux/v0.x/stdlib/universe/reduce/) function to create a JSON object to include as the body with `http.post()`. +Use the [reduce()](/flux/v0/stdlib/universe/reduce/) function to create a JSON object to include as the body with `http.post()`. -1. Import both the [array](/flux/v0.x/stdlib/array/) package to query data and construct table(s), and the [http package](/flux/v0.x/stdlib/http/) to transfer JSON over http. +1. Import both the [array](/flux/v0/stdlib/array/) package to query data and construct table(s), and the [http package](/flux/v0/stdlib/http/) to transfer JSON over http. 2. Use `array.from()` to query data and construct a table. Or, use another method [to query data with Flux](/influxdb/v2/query-data/flux/). 3. Use the `reduce()` function to construct a JSON object, and then use `yield()` to store the output of reduce. This table looks like: @@ -19,7 +19,7 @@ Use the [reduce()](/flux/v0.x/stdlib/universe/reduce/) function to create a JSON | :-------------------- | :----------------------------- | | example-field:["3"4"1 | {example-tag-key:["bar"bar"bar | -4. Use the [map()](/flux/v0.x/stdlib/universe/map/) function to combine the two components together into a JSON object, and then use a second `yield()` function to store this object as `final JSON`. This table looks like: +4. Use the [map()](/flux/v0/stdlib/universe/map/) function to combine the two components together into a JSON object, and then use a second `yield()` function to store this object as `final JSON`. This table looks like: | field | tag | final | | :-------------------- | :----------------------------- | :------------------------------------------------------- | diff --git a/content/resources/how-to-guides/select-hours-from-data.md b/content/resources/how-to-guides/select-hours-from-data.md index 7f35f3f95..32f462d93 100644 --- a/content/resources/how-to-guides/select-hours-from-data.md +++ b/content/resources/how-to-guides/select-hours-from-data.md @@ -12,7 +12,7 @@ weight: 102 You may want to select data from specific hours of the day. For example, you may only want data within normal business hours (9am - 5pm). ## Solution 1 -Use [hourSelection()](/flux/v0.x/stdlib/universe/hourselection/) to filter data by a specific hour range in each day. +Use [hourSelection()](/flux/v0/stdlib/universe/hourselection/) to filter data by a specific hour range in each day. ```js import "date" @@ -26,7 +26,7 @@ from(bucket: "example-bucket") ## Solution 2 -Use [date.hour()](/flux/v0.x/stdlib/date/hour/) to evaluate hours in a `filter()` predicate. +Use [date.hour()](/flux/v0/stdlib/date/hour/) to evaluate hours in a `filter()` predicate. ```js import "date" @@ -37,4 +37,4 @@ from(bucket: "example-bucket") |> filter(fn: (r) => r["_field"] == "example-field") |> filter(fn: (r) => date.hour(t: r["_time"]) > 9 and date.hour(t: r["_time"]) < 17) -This solution also applies if you to select data from certain seconds in a minute, minutes in an hour, days in the month, months in the year, etc. Use the [Flux `date` package](/flux/v0.x/stdlib/date/) to assign integer representations to your data and filter for your desired schedule. \ No newline at end of file +This solution also applies if you to select data from certain seconds in a minute, minutes in an hour, days in the month, months in the year, etc. Use the [Flux `date` package](/flux/v0/stdlib/date/) to assign integer representations to your data and filter for your desired schedule. \ No newline at end of file diff --git a/content/resources/how-to-guides/state-changes-across-task-executions.md b/content/resources/how-to-guides/state-changes-across-task-executions.md index 30b053541..31ca6ea4f 100644 --- a/content/resources/how-to-guides/state-changes-across-task-executions.md +++ b/content/resources/how-to-guides/state-changes-across-task-executions.md @@ -17,7 +17,7 @@ It's common to use [InfluxDB tasks](/influxdb/cloud/process-data/) to evaluate a Explicitly assign levels to your data based on thresholds. ### Solution Advantages -This is the easiest solution to understand if you have never written a task with the [`monitor` package](/flux/v0.x/stdlib/influxdata/influxdb/monitor/). +This is the easiest solution to understand if you have never written a task with the [`monitor` package](/flux/v0/stdlib/influxdata/influxdb/monitor/). ### Solution Disadvantages You have to explicitly define your thresholds, which potentially requires more code. @@ -36,9 +36,9 @@ Create a task where you: ### Solution Explained 1. Import packages and define task options and secrets. Import the following packages: - - [Flux Telegram package](/flux/v0.x/stdlib/contrib/sranka/telegram/): This package - - [Flux InfluxDB secrets package](/flux/v0.x/stdlib/influxdata/influxdb/secrets/): This package contains the [secrets.get()](/flux/v0.x/stdlib/influxdata/influxdb/secrets/get/) function which allows you to retrieve secrets from the InfluxDB secret store. Learn how to [manage secrets](/influxdb/v2/admin/secrets/) in InfluxDB to use this package. - - [Flux InfluxDB monitoring package](https://docs.influxdata.com/flux/v0.x/stdlib/influxdata/influxdb/monitor/): This package contains functions and tools for monitoring your data. + - [Flux Telegram package](/flux/v0/stdlib/contrib/sranka/telegram/): This package + - [Flux InfluxDB secrets package](/flux/v0/stdlib/influxdata/influxdb/secrets/): This package contains the [secrets.get()](/flux/v0/stdlib/influxdata/influxdb/secrets/get/) function which allows you to retrieve secrets from the InfluxDB secret store. Learn how to [manage secrets](/influxdb/v2/admin/secrets/) in InfluxDB to use this package. + - [Flux InfluxDB monitoring package](https://docs.influxdata.com/flux/v0/stdlib/influxdata/influxdb/monitor/): This package contains functions and tools for monitoring your data. ```js @@ -88,7 +88,7 @@ Create a task where you: | example-measurement | example-tag-value | example-field | 50.0 | crit | 2022-01-01T00:01:00Z | -4. Write “states” back to InfluxDB. You can write the data to a new measurement or to a new bucket. To write the data to a new measurement, use [`set()`](/flux/v0.x/stdlib/universe/set/) to update the value of the `_measurement` column in your “states” data. +4. Write “states” back to InfluxDB. You can write the data to a new measurement or to a new bucket. To write the data to a new measurement, use [`set()`](/flux/v0/stdlib/universe/set/) to update the value of the `_measurement` column in your “states” data. ```js states @@ -115,7 +115,7 @@ Create a task where you: | :------------------ | :---------------- | :------------ | -----: | :----- | :------------------- | | example-measurement | example-tag-value | example-field | 55.0 | crit | 2021-12-31T23:59:00Z | -6. Union “states” and “last_state_previous_task”. Store this data in a variable “unioned_states”. Use [`sort()`](/flux/v0.x/stdlib/universe/sort/) to ensure rows are ordered by time. +6. Union “states” and “last_state_previous_task”. Store this data in a variable “unioned_states”. Use [`sort()`](/flux/v0/stdlib/universe/sort/) to ensure rows are ordered by time. ```js unioned_states = @@ -131,7 +131,7 @@ Create a task where you: | example-measurement | example-tag-value | example-field | 30.0 | ok | 2022-01-01T00:00:00Z | | example-measurement | example-tag-value | example-field | 50.0 | crit | 2022-01-01T00:01:00Z | -7. Use [`monitor.stateChangesOnly()`](/flux/v0.x/stdlib/influxdata/influxdb/monitor/statechangesonly/) to return only rows where the state changed in “unioned_states”. Store this data in a variable, “state_changes”. +7. Use [`monitor.stateChangesOnly()`](/flux/v0/stdlib/influxdata/influxdb/monitor/statechangesonly/) to return only rows where the state changed in “unioned_states”. Store this data in a variable, “state_changes”. ```js state_changes = diff --git a/content/resources/videos/Flux-Data-Structure.md b/content/resources/videos/Flux-Data-Structure.md index 228e7a4aa..d7a753552 100644 --- a/content/resources/videos/Flux-Data-Structure.md +++ b/content/resources/videos/Flux-Data-Structure.md @@ -1,7 +1,7 @@ --- title: Flux Data Structure description: > - [Flux](/flux/v0.x/) is the native data language for the InfluxDB platform. Here, Scott Anderson discusses the 'stream of tables' concept, and how that relates to Flux's data structure. + [Flux](/flux/v0/) is the native data language for the InfluxDB platform. Here, Scott Anderson discusses the 'stream of tables' concept, and how that relates to Flux's data structure. menu: resources: parent: Videos diff --git a/content/resources/videos/Flux-Functions.md b/content/resources/videos/Flux-Functions.md index f40c2563a..3d0044f5c 100644 --- a/content/resources/videos/Flux-Functions.md +++ b/content/resources/videos/Flux-Functions.md @@ -1,7 +1,7 @@ --- title: Flux Functions description: > - Functions are the building blocks of the Flux scripting language. Here, Scott Anderson describes what [Flux functions](/flux/v0.x/stdlib/all-functions/) are, how they work, and how to use them. + Functions are the building blocks of the Flux scripting language. Here, Scott Anderson describes what [Flux functions](/flux/v0/stdlib/all-functions/) are, how they work, and how to use them. menu: resources: parent: Videos diff --git a/content/shared/influxctl/release-notes.md b/content/shared/influxctl/release-notes.md index acf26063e..4e35c655a 100644 --- a/content/shared/influxctl/release-notes.md +++ b/content/shared/influxctl/release-notes.md @@ -1,3 +1,22 @@ +## v2.10.1 {date="2025-05-30"} + +### Features + +- Implement `clustered generate` subcommand. +- Support setting the management token an using environment variable. +- Support setting profile name using an environment variable. + +### Dependency updates + +- Update `github.com/apache/arrow-go/v18` from 18.2.0 to 18.3.0. +- Update `github.com/containerd/containerd` from 1.7.12 to 1.7.27. +- Update `github.com/go-git/go-git/v5` from 5.15.0 to 5.16.0. +- Update `golang.org/x/oauth2` from 0.29.0 to 0.30.0. +- Update `google.golang.org/grpc` from 1.71.1 to 1.72.1. +- Update `helm.sh/helm/v3` from 3.14.2 to 3.17.3. + +--- + ## v2.10.0 {date="2025-04-04"} ### Features diff --git a/content/shared/influxdb3-admin/distinct-value-cache/_index.md b/content/shared/influxdb3-admin/distinct-value-cache/_index.md index a21f2bd76..0a5ef6324 100644 --- a/content/shared/influxdb3-admin/distinct-value-cache/_index.md +++ b/content/shared/influxdb3-admin/distinct-value-cache/_index.md @@ -4,7 +4,7 @@ values of one or more columns in a table, improving the performance of queries that return distinct tag and field values. The DVC is an in-memory cache that stores distinct values for specific columns -in a table. When you create an DVC, you can specify what columns' distinct +in a table. When you create a DVC, you can specify what columns' distinct values to cache, the maximum number of distinct value combinations to cache, and the maximum age of cached values. A DVC is associated with a table, which can have multiple DVCs. @@ -68,11 +68,17 @@ similar to this: DVCs are stored in memory; the larger the cache, the more memory your InfluxDB 3 node requires to maintain it. Consider the following: +- [Cache data loading](#cache-data-loading) - [High cardinality limits](#high-cardinality-limits) {{% show-in "core" %}} - [Distinct Value Caches are flushed when the server stops](#distinct-value-caches-are-flushed-when-the-server-stops) {{% /show-in %}} +## Cache data loading + +On cache creation, {{% product-name %}} loads historical data into the cache. +On restart, the server automatically reloads cache data. + ### High cardinality limits “Cardinality” refers to the number of unique key column combinations in your diff --git a/content/shared/influxdb3-admin/distinct-value-cache/create.md b/content/shared/influxdb3-admin/distinct-value-cache/create.md index d0e4e69ea..c897c0dbf 100644 --- a/content/shared/influxdb3-admin/distinct-value-cache/create.md +++ b/content/shared/influxdb3-admin/distinct-value-cache/create.md @@ -95,12 +95,10 @@ Replace the following: - {{% code-placeholder-key %}}`DVC_NAME`{{% /code-placeholder-key %}}: a unique name for the DVC -> [!Note] -> #### Values are cached on write -> -> Values are cached on write. When you create a cache, it will not cache -> previously written points, only newly written points. -> + +The cache imports the distinct values from the table and starts caching them. + +> [!Important] > #### DVC size and persistence > > The DVC is stored in memory, so it's important to consider the size and diff --git a/content/shared/influxdb3-admin/last-value-cache/_index.md b/content/shared/influxdb3-admin/last-value-cache/_index.md index 5ced5aab5..7b473c2d3 100644 --- a/content/shared/influxdb3-admin/last-value-cache/_index.md +++ b/content/shared/influxdb3-admin/last-value-cache/_index.md @@ -81,11 +81,17 @@ similar to the following: LVCs are stored in memory; the larger the cache, the more memory your InfluxDB 3 node requires to maintain it. Consider the following: +- [Cache data loading](#cache-data-loading) - [High cardinality key columns](#high-cardinality-key-columns) - [Value count](#value-count) {{% show-in "core" %}} - [Last Value Caches are flushed when the server stops](#last-value-caches-are-flushed-when-the-server-stops) -{{% /show-in %}}lue-columns) +{{% /show-in %}} + +## Cache data loading + +On cache creation, {{% product-name %}} loads historical data into the cache. +On restart, the server automatically reloads cache data. ### High cardinality key columns diff --git a/content/shared/influxdb3-admin/last-value-cache/create.md b/content/shared/influxdb3-admin/last-value-cache/create.md index 4a439ffc4..febc66f83 100644 --- a/content/shared/influxdb3-admin/last-value-cache/create.md +++ b/content/shared/influxdb3-admin/last-value-cache/create.md @@ -109,12 +109,9 @@ Replace the following: - {{% code-placeholder-key %}}`LVC_NAME`{{% /code-placeholder-key %}}: a unique name for the LVC -> [!Note] -> #### Values are cached on write -> -> Values are cached on write. When you create a cache, it will not cache -> previously written points, only newly written points. -> +The cache imports the distinct values from the table and starts caching them. + +> [!Important] > #### LVC size and persistence > > The LVC is stored in memory, so it's important to consider the size and persistence diff --git a/content/shared/influxdb3-admin/tokens/_index.md b/content/shared/influxdb3-admin/tokens/_index.md index 35f4da85a..2ab0675ae 100644 --- a/content/shared/influxdb3-admin/tokens/_index.md +++ b/content/shared/influxdb3-admin/tokens/_index.md @@ -1,66 +1,70 @@ -Manage tokens to authenticate and authorize access to resources and data in your {{< product-name >}} instance. +Manage tokens to authenticate and authorize access to server actions, resources, and data in your {{< product-name >}} instance. ## Provide your token -Before running CLI commands or making HTTP API requests, you must provide a valid token to authenticate. +If you start the {{< product-name >}} server with authentication enabled (the default), future server actions (CLI commands and HTTP API requests) require a valid token for authorization. + +The first admin token you create is the _operator_ token (named `_admin`), which has full administrative privileges. +You can use the operator token to authenticate your requests and manage additional authorization tokens. + The mechanism for providing your token depends on the client you use to interact with {{% product-name %}}--for example: {{< tabs-wrapper >}} - {{% tabs %}} [influxdb3 CLI](#influxdb3-cli-auth) [cURL](#curl-auth) {{% /tabs %}} - {{% tab-content %}} -When using the `influxdb3` CLI, you can use the `--token` option to provide your authorization token. +When using the `influxdb3` CLI, you can set the `INFLUXDB3_AUTH_TOKEN` environment variable to automatically provide your +authorization token to all `influxdb3` commands--for example: -{{% code-placeholders "YOUR_TOKEN" %}} +{{% code-placeholders "YOUR_AUTH_TOKEN" %}} +```bash +# Export your token as an environment variable +export INFLUXDB3_AUTH_TOKEN=YOUR_AUTH_TOKEN + +# Run an influxdb3 command +influxdb3 query \ + --database DATABASE_NAME \ + "SELECT * FROM 'DATABASE_NAME' WHERE time > now() - INTERVAL '10 minutes'" +``` +{{% /code-placeholders %}} + +To specify a token in the command and override the environment variable, pass the `--token` option with your authorization token--for example: + +{{% code-placeholders "YOUR_AUTH_TOKEN" %}} ```bash # Include the --token option in your influxdb3 command influxdb3 query \ - --token YOUR_TOKEN \ - --database example-db \ - "SELECT * FROM 'example-table' WHERE time > now() - INTERVAL '10 minutes'" + --token YOUR_AUTH_TOKEN \ + --database DATABASE_NAME \ + "SELECT * FROM 'DATABASE_NAME' WHERE time > now() - INTERVAL '10 minutes'" ``` {{% /code-placeholders %}} You can also set the `INFLUXDB3_AUTH_TOKEN` environment variable to automatically provide your authorization token to all `influxdb3` commands. -{{% code-placeholders "YOUR_TOKEN" %}} -```bash -# Export your token as an environment variable -export INFLUXDB3_AUTH_TOKEN=YOUR_TOKEN - -# Run an influxdb3 command without the --token option -influxdb3 query \ - --database example-db \ - "SELECT * FROM 'example-table' WHERE time > now() - INTERVAL '10 minutes'" -``` -{{% /code-placeholders %}} - -Replace `YOUR_TOKEN` with your authorization token. - {{% /tab-content %}} - {{% tab-content %}} -{{% code-placeholders "AUTH_TOKEN" %}} +{{% code-placeholders "YOUR_AUTH_TOKEN" %}} ```bash # Add your token to the HTTP Authorization header curl "http://{{< influxdb/host >}}/api/v3/query_sql" \ - --header "Authorization: Bearer AUTH_TOKEN" \ - --data-urlencode "db=example-db" \ - --data-urlencode "q=SELECT * FROM 'example-table' WHERE time > now() - INTERVAL '10 minutes'" + --header "Authorization: Bearer YOUR_AUTH_TOKEN" \ + --data-urlencode "db=DATABASE_NAME" \ + --data-urlencode "q=SELECT * FROM 'DATABASE_NAME' WHERE time > now() - INTERVAL '10 minutes'" ``` {{% /code-placeholders %}} -Replace `AUTH_TOKEN` with your actual InfluxDB 3 token. - {{% /tab-content %}} - {{< /tabs-wrapper >}} +Replace the following with your values: + +- {{% code-placeholder-key %}}`YOUR_AUTH_TOKEN`{{% /code-placeholder-key %}}: your {{% token-link %}} +- {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}: the name of the database you want to query + {{< children hlevel="h2" readmore=true hr=true >}} diff --git a/content/shared/influxdb3-admin/tokens/admin/_index.md b/content/shared/influxdb3-admin/tokens/admin/_index.md index da3e84112..ba8b9ac1d 100644 --- a/content/shared/influxdb3-admin/tokens/admin/_index.md +++ b/content/shared/influxdb3-admin/tokens/admin/_index.md @@ -1,2 +1,27 @@ - -{{< children hlevel="h2" readmore=true hr=true >}} \ No newline at end of file + +Manage {{< product-name omit="Clustered" >}} admin tokens to authorize server actions, `influxdb3` CLI commands, and HTTP API endpoints for your {{< product-name omit="Clustered" >}} instance. +Administrative (_admin_) tokens provide full system access and management capabilities for your {{< product-name omit="Clustered" >}} instance. +{{% show-in "core" %}} +Admin tokens can create, edit, and delete other admin tokens. +{{% /show-in %}} +{{% show-in "enterprise" %}} +Admin tokens can create, edit, and delete other admin tokens, as well as manage [resource tokens](/influxdb3/version/admin/tokens/resource/). +{{% /show-in %}} + +{{% product-name omit="Clustered" %}} supports two types of admin tokens: + +- **Operator token**: A system-generated administrative token with the name `_admin`. + - Cannot be edited or deleted + - Never expires + - Cannot be recreated if lost (future functionality) + - Can be regenerated using the CLI + +- **Named admin token**: User-defined administrative tokens with full admin permissions. + - Can be created, edited, and deleted + - Support expiration dates + - Cannot modify or remove the operator token + +An {{% product-name omit="Clustered" %}} instance can have one operator token and unlimited named admin tokens. + +{{< children hlevel="h2" readmore=true hr=true >}} diff --git a/content/shared/influxdb3-admin/tokens/admin/create.md b/content/shared/influxdb3-admin/tokens/admin/create.md index 093d5091a..d63014c26 100644 --- a/content/shared/influxdb3-admin/tokens/admin/create.md +++ b/content/shared/influxdb3-admin/tokens/admin/create.md @@ -1,18 +1,36 @@ - Use the [`influxdb3 create token --admin` subcommand](/influxdb3/version/reference/cli/influxdb3/create/token/) -or the [HTTP API](/influxdb3/version/api/v3/) -to create an [admin token](/influxdb3/version/admin/tokens/admin/) for your {{< product-name omit="Clustered" >}} instance. -An admin token grants full access to all actions for your InfluxDB 3 instance. +with the `--name` option or the HTTP API [`/api/v3/configure/token/admin`](/influxdb3/version/api/v3/) endpoint +to create an admin token for your {{< product-name omit="Clustered" >}} instance. +An admin token grants full access to all actions for your InfluxDB 3 instance and can be referenced by its name. + +{{% product-name omit="Clustered" %}} supports two types of admin tokens: +- **Operator token**: A system-generated administrative token with the name `_admin`. + - Cannot be edited or deleted + - Never expires + - Cannot be recreated if lost (future functionality) + - Can be regenerated using the CLI +- **Named admin token**: User-defined administrative tokens with full admin permissions. + - Can be created, edited, and deleted + - Support expiration dates + - Cannot modify or remove the operator token + +An {{% product-name omit="Clustered" %}} instance can have one operator token and unlimited named admin tokens. + +[Create an operator token](#create-an-operator-token) +[Create a named admin token](#create-a-named-admin-token) > [!Note] > #### Store secure tokens in a secret store > > Token strings are returned _only_ on token creation. > We recommend storing database tokens in a **secure secret store**. -> Anyone with access to the admin token has full control over your {{< product-name >}} instance. -> If you lose the admin token string, you must regenerate the token. +> Anyone with access to the named admin token has full control over your {{< product-name >}} instance. +> If you lose the named admin token string, you must regenerate the token. -## Create an admin token +## Create an operator token + +The first admin token your create for your {{% product-name %}} +instance is the operator token. {{< tabs-wrapper >}} {{% tabs %}} @@ -20,27 +38,71 @@ An admin token grants full access to all actions for your InfluxDB 3 instance. [HTTP API](#use-the-http-api) {{% /tabs %}} {{% tab-content %}} - -Use the `influxdb3 create token --admin` command: +Use the `influxdb3 create token --admin` command without a token name: ```bash influxdb3 create token --admin ``` -The output contains the token string in plain text. - -To use the token as the default for later commands, and to persist the token -across sessions, assign the token string to the `INFLUXDB3_AUTH_TOKEN` environment variable. {{% /tab-content %}} {{% tab-content %}} -Use the following endpoint to create an admin token: +Use the following endpoint to create an operator token: {{% api-endpoint method="POST" endpoint="/api/v3/configure/token/admin" api-ref="/influxdb3/version/api/v3/#operation/PostCreateAdminToken" %}} ```bash curl -X POST "http://{{< influxdb/host >}}/api/v3/configure/token/admin" \ ---header 'Accept: application/json' \ ---header 'Content-Type: application/json' ``` + {{% /tab-content %}} {{< /tabs-wrapper >}} + +The output contains the token string in plain text. + +## Create a named admin token + +{{< tabs-wrapper >}} +{{% tabs %}} +[CLI](#use-the-influxdb3-cli) +[HTTP API](#use-the-http-api) +{{% /tabs %}} +{{% tab-content %}} +Use the `influxdb3 create token --admin` command with a token name: + +{{% code-placeholders "TOKEN_NAME|ADMIN_TOKEN" %}} +```bash +influxdb3 create token --admin --token ADMIN_TOKEN --name "TOKEN_NAME" +``` +{{% /code-placeholders %}} + +Replace the following with your values: + +- {{% code-placeholder-key %}}`ADMIN_TOKEN`{{% /code-placeholder-key %}}: your existing operator or named admin token +- {{% code-placeholder-key %}}`TOKEN_NAME`{{% /code-placeholder-key %}}: the name you want to assign to the new admin token + +The output contains the token string in plain text. + +{{% /tab-content %}} +{{% tab-content %}} +Use the following endpoint to create a named admin token: + +{{% api-endpoint method="POST" endpoint="/api/v3/configure/token/admin" api-ref="/influxdb3/version/api/v3/#operation/PostCreateAdminToken" %}} + +```bash +curl -X POST "http://{{< influxdb/host >}}/api/v3/configure/token/admin" \ + --header 'Authorization Bearer ADMIN_TOKEN' \ + --json '{ + "name": "TOKEN_NAME" + }' +``` +Replace the following with your values: + +- {{% code-placeholder-key %}}`ADMIN_TOKEN`{{% /code-placeholder-key %}}: your existing operator or named admin token +- {{% code-placeholder-key %}}`TOKEN_NAME`{{% /code-placeholder-key %}}: the name you want to assign to the new admin token + +The response body contains the token string in plain text. +{{% /tab-content %}} +{{< /tabs-wrapper >}} + +_To use the token as the default for later commands, and to persist the token +across sessions, assign the token string to the `INFLUXDB3_AUTH_TOKEN` environment variable._ diff --git a/content/shared/influxdb3-admin/tokens/admin/list.md b/content/shared/influxdb3-admin/tokens/admin/list.md index 8bb72a3a4..ac2732cff 100644 --- a/content/shared/influxdb3-admin/tokens/admin/list.md +++ b/content/shared/influxdb3-admin/tokens/admin/list.md @@ -12,8 +12,7 @@ data and resources in your InfluxDB 3 instance. > #### Required permissions > > Listing admin tokens requires a valid InfluxDB {{% token-link "admin" %}}{{% show-in "enterprise" %}} or a token with read access to the `_internal` system database{{% /show-in %}}. -> For more information about providing a token, see [provide your token](/influxdb3/version/admin/tokens/#provide-your-token). - +> For more information, see how to [provide your token](/influxdb3/version/admin/tokens/#provide-your-token). ## List all tokens diff --git a/content/shared/influxdb3-admin/tokens/admin/regenerate.md b/content/shared/influxdb3-admin/tokens/admin/regenerate.md index d7c3f194e..76ac054c5 100644 --- a/content/shared/influxdb3-admin/tokens/admin/regenerate.md +++ b/content/shared/influxdb3-admin/tokens/admin/regenerate.md @@ -1,54 +1,45 @@ -Use the `influxdb3` CLI or the HTTP API to regenerate an admin token. +Use the `influxdb3` CLI or the HTTP API to regenerate the operator (`_admin`) token for your {{% product-name %}} instance. Regenerate a token to rotate it as part of your security practices or if you suspect the token has been compromised. -{{< show-in "enterprise" >}} -Regenerating an admin token deactivates the previous token, +Regenerating the operator token deactivates the previous token, stores the SHA512 hash and metadata of the new token, and returns the new token string. -{{< /show-in >}} -{{< show-in "core" >}} -Regenerating the admin token deactivates the previous token, updates the `_admin` token -SHA512 hash and metadata, and returns the new token string. -{{< /show-in >}} - -An admin token grants access to all actions on the server. ## Prerequisite -To regenerate a token, you need the current token string. +To regenerate an operator token, you need the current token string. -## Use the CLI or HTTP API to regenerate an admin token +## Use the CLI or HTTP API to regenerate the operator token > [!Important] -> #### Securely store your token -> -> InfluxDB lets you view the token string only when you create the token. -> Store your token in a secure location, as you cannot retrieve it from the database later. -> InfluxDB 3 stores only the token's hash and metadata in the catalog. +> #### Regenerating the operator token +> Regenerating the operator token invalidates the previous token. +> Make sure to update any applications or scripts that use the operator token. + +To regenerate the operator token, use the [`influxdb3 serve create token` command] with the `--admin` and `--regenerate` flags: {{< tabs-wrapper >}} {{% tabs %}} -[CLI](#cli-regenerate-admin-token) -[HTTP API](#http-api-regenerate-admin-token) +[CLI](#cli-regenerate) +[HTTP API](#http-api-regenerate) {{% /tabs %}} {{% tab-content %}} Use the `--regenerate` flag with the -`influxdb3 create token --admin` subcommand--for example: +[`influxdb3 create token --admin`](/influxdb3/version/reference/cli/influxdb3/create/token/) subcommand--for example: -{{% code-placeholders "ADMIN_TOKEN" %}} +{{% code-placeholders "OPERATOR_TOKEN" %}} ```bash influxdb3 create token --admin \ - --token ADMIN_TOKEN \ --regenerate + OPERATOR_TOKEN ``` {{% /code-placeholders %}} In your command, -replace {{% code-placeholder-key %}}`ADMIN_TOKEN`{{% /code-placeholder-key %}} -with the current token string. +replace {{% code-placeholder-key %}}`OPERATOR_TOKEN`{{% /code-placeholder-key %}} +with the current operator (`_admin`) token string. -The CLI asks for confirmation before regenerating the token. The output contains the new token string and InfluxDB deactivates the previous token string. {{% /tab-content %}} @@ -58,20 +49,31 @@ Use the following HTTP API endpoint: {{% api-endpoint method="POST" endpoint="/api/v3/configure/token/admin/regenerate" api-ref="/influxdb3/version/api/v3/configure/token/admin/regenerate" %}} -In your request, send an `Authorization` header with your current admin token string +In your request, send an `Authorization` header with your current operator token string --for example: -{{% code-placeholders "ADMIN_TOKEN" %}} +{{% code-placeholders "OPERATOR_TOKEN" %}} ```bash curl -X POST "http://{{< influxdb/host >}}/api/v3/configure/token/admin/regenerate" \ - --header "Authorization: Bearer ADMIN_TOKEN" \ + --header "Authorization: Bearer OPERATOR_TOKEN" \ --header "Accept: application/json" ``` {{% /code-placeholders %}} -In your command, replace {{% code-placeholder-key %}}`ADMIN_TOKEN`{{% /code-placeholder-key %}} with the current token string. +In your command, replace {{% code-placeholder-key %}}`OPERATOR_TOKEN`{{% /code-placeholder-key %}} with the current token string. -The output contains the new token string and InfluxDB deactivates the previous token string. +The response body contains the new operator token string in plain text, and InfluxDB deactivates the previous token string. {{% /tab-content %}} {{< /tabs-wrapper >}} + +To use the token as the default for later commands, and to persist the token +across sessions, assign the token string to the `INFLUXDB3_AUTH_TOKEN` environment variable. + +## Important considerations + +- Regenerating the operator token invalidates the previous token. +- If you lose the operator token, there is no recovery mechanism. +- `--regenerate` only works for the operator token. You can't use the `--regenerate` flag with the `influxdb3 create token --admin` command to regenerate a named admin token. +- Ensure that you update any applications or scripts that use the operator token with the new token string. +- Always store your operator token securely and consider implementing proper secret management practices. diff --git a/content/shared/influxdb3-cli/create/token.md b/content/shared/influxdb3-cli/create/token.md deleted file mode 100644 index ff49fee36..000000000 --- a/content/shared/influxdb3-cli/create/token.md +++ /dev/null @@ -1,65 +0,0 @@ -The `influxdb3 create token` command creates a new authentication token. This returns the raw token string. Use it to authenticate future CLI commands and API requests. - -> [!Important] -> InfluxDB displays the raw token string only once. Be sure to copy and securely store it. - -## Usage - - - -```bash -influxdb3 create token -``` - -## Commands - -| Command | Description | -| :----- | :----------- | :------------------------------ | -| `--admin` | Create an admin token for the {{< product-name >}} server. | -{{% show-in "enterprise" %}}| [`--permission`](/influxdb3/enterprise/reference/cli/influxdb3/create/token/permission/) | Create a resource token with fine-grained access permissions. |{{% /show-in %}} - -## Options - -| Option | | Description | -| :----- | :------- | :--------------------- | -| |`--admin`| Create an admin token | -| `-h` | `--help` | Print help information | - - -## Examples - -### Create an admin token - - - -```bash -influxdb3 create token --admin -``` - -The output is the raw token string you can use to authenticate future CLI commands and API requests. -For CLI commands, use the `--token` option or the `INFLUXDB3_AUTH_TOKEN` environment variable to pass the token string. - -### Use the token to create a database - -{{% code-placeholders "YOUR_ADMIN_TOKEN|DATABASE_NAME" %}} - - - -```bash -influxdb3 create database \ - --token ADMIN_TOKEN \ - DATABASE_NAME -``` -{{% /code-placeholders %}} - -Replace the following: - -- {{% code-placeholder-key %}}`ADMIN_TOKEN`{{% /code-placeholder-key %}}: Your InfluxDB admin token -- {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}: Name for your new database - -> [!Note] -> Set the token as an environment variable to simplify repeated CLI commands: -> -> ```bash -> export INFLUXDB3_AUTH_TOKEN=YOUR_ADMIN_TOKEN -> ``` diff --git a/content/shared/influxdb3-cli/create/token/_index.md b/content/shared/influxdb3-cli/create/token/_index.md new file mode 100644 index 000000000..d1cb2139f --- /dev/null +++ b/content/shared/influxdb3-cli/create/token/_index.md @@ -0,0 +1,28 @@ +The `influxdb3 create token` command creates a new authentication token. This returns the raw token string. Use it to authenticate future CLI commands and API requests. + +> [!Important] +> InfluxDB displays the raw token string only once. Be sure to copy and securely store it. + +## Usage + + + +```bash +influxdb3 create token +``` + +## Commands + +| Command | Description | +| :----- | :----------- | :------------------------------ | +| [`--admin`](/influxdb3/version/reference/cli/influxdb3/create/token/admin/) | Create an operator or named admin token for the {{< product-name >}} server. | +{{% show-in "enterprise" %}}| [`--permission`](/influxdb3/enterprise/reference/cli/influxdb3/create/token/permission/) | Create a resource token with fine-grained access permissions. |{{% /show-in %}} + +## Options + +| Option | | Description | +| :----- | :------- | :--------------------- | +| |`--admin`| Create an admin token | +| `-h` | `--help` | Print help information | + + diff --git a/content/shared/influxdb3-cli/create/token/admin.md b/content/shared/influxdb3-cli/create/token/admin.md new file mode 100644 index 000000000..84d79b033 --- /dev/null +++ b/content/shared/influxdb3-cli/create/token/admin.md @@ -0,0 +1,85 @@ + +Create an operator token or named admin token. + +## Usage + +``` +influxdb3 create token --admin [OPTIONS] +``` + +## Options + +| Option | Description | +|:-------|:------------| +| `--regenerate` | Regenerates the operator token. Requires `--token` and the current operator token | +| `--name ` | Name of the token | +| `--expiry ` | Expires in `duration`--for example, 10d for 10 days 1y for 1 year | +| `--host ` | The host URL of the running InfluxDB 3 server [env: `INFLUXDB3_HOST_URL=`] [default: `http://127.0.0.1:8181`] | +| `--token ` | An existing admin token for the InfluxDB 3 server | +| `--tls-ca ` | An optional arg to use a custom ca for useful for testing with self signed certs | +| `--format ` | Output format for token [possible values: `json`, `text`] | +| `-h`, `--help` | Print help information | +| `--help-all` | Print more detailed help information | + +## Examples + +### Create an operator token + +The operator token is a special token that has full administrative privileges on the InfluxDB server and doesn't expire. +The first admin token you create becomes the operator token for the instance. +You can create an operator token using the `--admin` flag without any additional options. + + + +```bash +influxdb3 create token --admin +``` + +The output is the raw token string you can use to authenticate future CLI commands and API requests. +For CLI commands, use the `--token` option or the `INFLUXDB3_AUTH_TOKEN` environment variable to pass the token string. + +### Use the operator token to create a named admin token + +{{% code-placeholders "OPERATOR_TOKEN|TOKEN_NAME|EXPIRY" %}} + + +```bash +influxdb3 create token \ + --admin \ + --token OPERATOR_TOKEN \ + --name TOKEN_NAME \ + --expiry DURATION +``` +{{% /code-placeholders %}} + +Replace the following: + +- {{% code-placeholder-key %}}`OPERATOR_TOKEN`{{% /code-placeholder-key %}}: Your operator token for the server +- {{% code-placeholder-key %}}`TOKEN_NAME`{{% /code-placeholder-key %}}: Name for your new admin token +- {{% code-placeholder-key %}}`DURATION`{{% /code-placeholder-key %}}: Duration for the token to remain valid, in [humantime](https://docs.rs/humantime/latest/humantime/fn.parse_duration.html) format (for example, `10d` for 10 days or `1y` for 1 year). + +### Use the token to create a database + +{{% code-placeholders "YOUR_ADMIN_TOKEN|DATABASE_NAME" %}} + + + +```bash +influxdb3 create database \ + --token ADMIN_TOKEN \ + DATABASE_NAME +``` +{{% /code-placeholders %}} + +Replace the following: + +- {{% code-placeholder-key %}}`ADMIN_TOKEN`{{% /code-placeholder-key %}}: Your InfluxDB admin token +- {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}: Name for your new database + +> [!Note] +> #### Use CLI environment variables +> Set the token as an environment variable to simplify repeated CLI commands: +> +> ```bash +> export INFLUXDB3_AUTH_TOKEN=ADMIN_TOKEN +> ``` diff --git a/content/shared/influxdb3-cli/test/schedule_plugin.md b/content/shared/influxdb3-cli/test/schedule_plugin.md new file mode 100644 index 000000000..10aee669a --- /dev/null +++ b/content/shared/influxdb3-cli/test/schedule_plugin.md @@ -0,0 +1,84 @@ + +The `influxdb3 test schedule_plugin` command tests a schedule plugin. Use this command to verify plugin behavior without creating a trigger. + +## Usage + + + +```bash +influxdb3 test schedule_plugin [OPTIONS] --database +``` + +## Arguments + +- **FILENAME**: Path to the plugin file. Use the absolute path or the path relative to the current working directory, such as `/.py`. + +## Options + +| Option | Flag | Description | +| :----- | :-------------------- | :-------------------------------------------------------------------------------------------- | +| `-H` | `--host` | URL of the running {{< product-name >}} server
(default: `http://127.0.0.1:8181`) | +| `-d` | `--database` | _({{< req >}})_ Name of the database you want to test the plugin against | +| | `--token` | _({{< req >}})_ Authentication token | +| | `--input-arguments` | JSON map of key/value pairs to pass as plugin input arguments (for example, `'{"key":"val"}'`)| +| | `--schedule` | Cron schedule to simulate when testing the plugin
(default: `* * * * *`) | +| | `--cache-name` | Optional cache name to associate with the test | +| | `--tls-ca` | Path to a custom TLS certificate authority for self-signed certs | +| `-h` | `--help` | Show basic help information | +| | `--help-all` | Show all available help options | + + +### Option environment variables + +You can use the following environment variables to set command options: + +| Environment Variable | Corresponding Option | +| :------------------------ | :------------------- | +| `INFLUXDB3_HOST_URL` | `--host` | +| `INFLUXDB3_DATABASE_NAME` | `--database` | +| `INFLUXDB3_AUTH_TOKEN` | `--token` | +| `INFLUXDB3_TLS_CA` | `--tls-ca` | + +## Examples + +In the examples below, replace the following: + +- {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}: Your target database +- {{% code-placeholder-key %}}`AUTH_TOKEN`{{% /code-placeholder-key %}}: Your authentication token +- {{% code-placeholder-key %}}`PLUGIN_DIR`{{% /code-placeholder-key %}}: + the path to the plugin directory you provided when starting the server +- {{% code-placeholder-key %}}`FILENAME`{{% /code-placeholder-key %}}: + Plugin file name + +{{% code-placeholders "(DATABASE|PLUGIN_DIR|FILENAME|AUTH_TOKEN)" %}} + +### Test a schedule plugin + + + +```bash +influxdb3 test schedule_plugin \ + --database DATABASE_NAME \ + --token AUTH_TOKEN \ + PLUGIN_DIR/FILENAME.py +``` + +### Test with input arguments and a custom cron schedule + +You can pass input arguments to your plugin as key-value pairs and specify a custom cron schedule (using Quartz cron syntax with six fields): + + + +```bash +influxdb3 test schedule_plugin \ + --host http://localhost:8182 \ + --database DATABASE_NAME \ + --token AUTH_TOKEN \ + --input-arguments threshold=10,unit=seconds \ + --schedule "0 0 * * * ?" \ + PLUGIN_DIR/FILENAME.py +``` +- Pass plugin parameters using `--input-arguments` as comma-separated key=value pairs. +- Use `--schedule` to set the plugin’s execution time with a Quartz cron expression. For example, "0 0 * * * ?" runs the plugin at the start of every hour. + +{{% /code-placeholders %}} diff --git a/content/shared/v3-enterprise-get-started/_index.md b/content/shared/influxdb3-get-started/_index.md similarity index 85% rename from content/shared/v3-enterprise-get-started/_index.md rename to content/shared/influxdb3-get-started/_index.md index 0377041e8..b2d12227a 100644 --- a/content/shared/v3-enterprise-get-started/_index.md +++ b/content/shared/influxdb3-get-started/_index.md @@ -1,37 +1,13 @@ -InfluxDB is a database built to collect, process, transform, and store event and time series data, and is ideal for use cases that require real-time ingest and fast query response times to build user interfaces, monitoring, and automation solutions. -Common use cases include: - -- Monitoring sensor data -- Server monitoring -- Application performance monitoring -- Network monitoring -- Financial market and trading analytics -- Behavioral analytics - -InfluxDB is optimized for scenarios where near real-time data monitoring is essential and queries need to return quickly to support user experiences such as dashboards and interactive user interfaces. - -{{% product-name %}} is built on InfluxDB 3 Core, the InfluxDB 3 open source release. -Core's feature highlights include: - -* Diskless architecture with object storage support (or local disk with no dependencies) -* Fast query response times (under 10ms for last-value queries, or 30ms for distinct metadata) -* Embedded Python VM for plugins and triggers -* Parquet file persistence -* Compatibility with InfluxDB 1.x and 2.x write APIs - -The Enterprise version adds the following features to Core: - -* Historical query capability and single series indexing -* High availability -* Read replicas -* Enhanced security (coming soon) -* Row-level delete support (coming soon) -* Integrated admin UI (coming soon) ### What's in this guide +{{% show-in "enterprise" %}} This guide covers Enterprise as well as InfluxDB 3 Core, including the following topics: +{{% /show-in %}} +{{% show-in "core" %}} +This guide covers InfluxDB 3 Core (the open source release), including the following topics: +{{% /show-in %}} - [Install and startup](#install-and-startup) - [Authentication and authorization](#authentication-and-authorization) @@ -42,7 +18,9 @@ This guide covers Enterprise as well as InfluxDB 3 Core, including the following - [Last values cache](#last-values-cache) - [Distinct values cache](#distinct-values-cache) - [Python plugins and the processing engine](#python-plugins-and-the-processing-engine) +{{% show-in "enterprise" %}} - [Multi-server setups](#multi-server-setup) +{{% /show-in %}} > [!Tip] > #### Find support for {{% product-name %}} @@ -54,6 +32,7 @@ This guide covers Enterprise as well as InfluxDB 3 Core, including the following {{% product-name %}} runs on **Linux**, **macOS**, and **Windows**. +{{% show-in "enterprise" %}} {{% tabs-wrapper %}} {{% tabs %}} [Linux or macOS](#linux-or-macos) @@ -107,18 +86,67 @@ Pull the image: docker pull influxdb:3-enterprise ``` -##### InfluxDB 3 Explorer -- Query Interface (beta) + +{{% /tab-content %}} +{{% /tabs-wrapper %}} +{{% /show-in %}} -You can download the new InfluxDB 3 Explorer query interface using Docker. -Explorer is currently in beta. Pull the image: +{{% show-in "core" %}} +{{% tabs-wrapper %}} +{{% tabs %}} +[Linux or macOS](#linux-or-macos) +[Windows](#windows) +[Docker](#docker) +{{% /tabs %}} +{{% tab-content %}} + +To get started quickly, download and run the install script--for example, using [curl](https://curl.se/download.html): + ```bash -docker pull quay.io/influxdb/influxdb3-explorer:latest +curl -O https://www.influxdata.com/d/install_influxdb3.sh \ +&& sh install_influxdb3.sh +``` +Or, download and install [build artifacts](/influxdb3/core/install/#download-influxdb-3-core-binaries): + +- [Linux | AMD64 (x86_64) | GNU](https://dl.influxdata.com/influxdb/releases/influxdb3-{{< product-key >}}-{{< latest-patch >}}_linux_amd64.tar.gz) + • + [sha256](https://dl.influxdata.com/influxdb/releases/influxdb3-{{< product-key >}}-{{< latest-patch >}}_linux_amd64.tar.gz.sha256) +- [Linux | ARM64 (AArch64) | GNU](https://dl.influxdata.com/influxdb/releases/influxdb3-{{< product-key >}}-{{< latest-patch >}}_linux_arm64.tar.gz) + • + [sha256](https://dl.influxdata.com/influxdb/releases/influxdb3-{{< product-key >}}-{{< latest-patch >}}_linux_arm64.tar.gz.sha256) +- [macOS | Silicon (ARM64)](https://dl.influxdata.com/influxdb/releases/influxdb3-{{< product-key >}}-{{< latest-patch >}}_darwin_arm64.tar.gz) + • + [sha256](https://dl.influxdata.com/influxdb/releases/influxdb3-{{< product-key >}}-{{< latest-patch >}}_darwin_arm64.tar.gz.sha256) + +> [!Note] +> macOS Intel builds are coming soon. + + +{{% /tab-content %}} +{{% tab-content %}} + +Download and install the {{% product-name %}} [Windows (AMD64, x86_64) binary](https://dl.influxdata.com/influxdb/releases/influxdb3-{{< product-key >}}-{{< latest-patch >}}-windows_amd64.zip) + • +[sha256](https://dl.influxdata.com/influxdb/releases/influxdb3-{{< product-key >}}-{{< latest-patch >}}-windows_amd64.zip.sha256) + +{{% /tab-content %}} +{{% tab-content %}} + +The [`influxdb:3-core` image](https://hub.docker.com/_/influxdb/tags?tag=3-core&name=3-core) +is available for x86_64 (AMD64) and ARM64 architectures. + +Pull the image: + + +```bash +docker pull influxdb:3-core ``` {{% /tab-content %}} {{% /tabs-wrapper %}} +{{% /show-in %}} _Build artifacts and images update with every merge into the {{% product-name %}} `main` branch._ @@ -137,11 +165,11 @@ If your system doesn't locate `influxdb3`, then `source` the configuration file source ~/.zshrc ``` + #### Start InfluxDB To start your InfluxDB instance, use the `influxdb3 serve` command and provide the following: - - `--object-store`: Specifies the type of object store to use. InfluxDB supports the following: local file system (`file`), `memory`, S3 (and compatible services like Ceph or Minio) (`s3`), @@ -149,8 +177,14 @@ To start your InfluxDB instance, use the `influxdb3 serve` command and provide t The default is `file`. Depending on the object store type, you may need to provide additional options for your object store configuration. +{{% show-in "enterprise" %}} - `--node-id`: A string identifier that distinguishes individual server instances within the cluster. This forms the final part of the storage path: `//`. In a multi-node setup, this ID is used to reference specific nodes. - `--cluster-id`: A string identifier that determines part of the storage path hierarchy. All nodes within the same cluster share this identifier. The storage path follows the pattern `//`. In a multi-node setup, this ID is used to reference the entire cluster. +{{% /show-in %}} +{{% show-in "core" %}} +- `--node-id`: A string identifier that distinguishes individual server instances. + This forms the final part of the storage path: `/`. +{{% /show-in %}} The following examples show how to start {{% product-name %}} with different object store configurations. @@ -161,8 +195,10 @@ The following examples show how to start {{% product-name %}} with different obj > storage alone, eliminating the need for locally attached disks. > {{% product-name %}} can also work with only local disk storage when needed. +{{% show-in "enterprise" %}} > [!Note] > The combined path structure `//` ensures proper organization of data in your object store, allowing for clean separation between clusters and individual nodes. +{{% /show-in %}} ##### Filesystem object store @@ -171,6 +207,7 @@ This is the default object store type. Replace the following with your values: +{{% show-in "enterprise" %}} ```bash # Filesystem object store # Provide the filesystem directory @@ -180,17 +217,28 @@ influxdb3 serve \ --object-store file \ --data-dir ~/.influxdb3 ``` +{{% /show-in %}} +{{% show-in "core" %}} +```bash +# File system object store +# Provide the file system directory +influxdb3 serve \ + --node-id host01 \ + --object-store file \ + --data-dir ~/.influxdb3 +``` +{{% /show-in %}} -To run the [Docker image](/influxdb3/version/install/#docker-image) and persist data to the filesystem, mount a volume for the object store-for example, pass the following options: +To run the [Docker image](/influxdb3/version/install/#docker-image) and persist data to the file system, mount a volume for the object store-for example, pass the following options: -- `-v /path/on/host:/path/in/container`: Mounts a directory from your filesystem to the container +- `-v /path/on/host:/path/in/container`: Mounts a directory from your file system to the container - `--object-store file --data-dir /path/in/container`: Uses the mount for server storage - +{{% show-in "enterprise" %}} ```bash -# Filesystem object store with Docker +# File system object store with Docker # Create a mount # Provide the mount path docker run -it \ @@ -201,8 +249,21 @@ docker run -it \ --object-store file \ --data-dir /path/in/container ``` - - +{{% /show-in %}} +{{% show-in "core" %}} + +```bash +# File system object store with Docker +# Create a mount +# Provide the mount path +docker run -it \ + -v /path/on/host:/path/in/container \ + influxdb:3-core influxdb3 serve \ + --node-id my_host \ + --object-store file \ + --data-dir /path/in/container +``` +{{% /show-in %}} > [!Note] > @@ -215,6 +276,7 @@ Store data in an S3-compatible object store. This is useful for production deployments that require high availability and durability. Provide your bucket name and credentials to access the S3 object store. +{{% show-in "enterprise" %}} ```bash # S3 object store (default is the us-east-1 region) # Specify the object store type and associated options @@ -227,6 +289,7 @@ influxdb3 serve \ --aws-secret-access-key AWS_SECRET_ACCESS_KEY ``` + ```bash # Minio or other open source object store # (using the AWS S3 API with additional parameters) @@ -241,12 +304,40 @@ influxdb3 serve \ --aws-endpoint ENDPOINT \ --aws-allow-http ``` +{{% /show-in %}} +{{% show-in "core" %}} +```bash +# S3 object store (default is the us-east-1 region) +# Specify the object store type and associated options +influxdb3 serve \ + --node-id host01 \ + --object-store s3 \ + --bucket OBJECT_STORE_BUCKET \ + --aws-access-key AWS_ACCESS_KEY_ID \ + --aws-secret-access-key AWS_SECRET_ACCESS_KEY +``` + +```bash +# Minio or other open source object store +# (using the AWS S3 API with additional parameters) +# Specify the object store type and associated options +influxdb3 serve \ + --node-id host01 \ + --object-store s3 \ + --bucket OBJECT_STORE_BUCKET \ + --aws-access-key-id AWS_ACCESS_KEY_ID \ + --aws-secret-access-key AWS_SECRET_ACCESS_KEY \ + --aws-endpoint ENDPOINT \ + --aws-allow-http +``` +{{% /show-in %}} #### Memory object store Store data in RAM without persisting it on shutdown. It's useful for rapid testing and development. +{{% show-in "enterprise" %}} ```bash # Memory object store # Stores data in RAM; doesn't persist data @@ -255,13 +346,33 @@ influxdb3 serve \ --cluster-id cluster01 \ --object-store memory ``` +{{% /show-in %}} +{{% show-in "core" %}} +```bash +# Memory object store +# Stores data in RAM; doesn't persist data +influxdb3 serve \ +--node-id host01 \ +--object-store memory +``` +{{% /show-in %}} -For more information about server options, use the CLI help or view the [InfluxDB 3 CLI reference](/influxdb3/version/reference/cli/serve/): +For more information about server options, use the CLI help or view the [InfluxDB 3 CLI reference](/influxdb3/version/reference/cli/influxdb3/serve/): ```bash influxdb3 serve --help ``` +> [!Tip] +> #### Run the InfluxDB 3 Explorer query interface (beta) +> +> InfluxDB 3 Explorer (currently in beta) is the web-based query and +> administrative interface for InfluxDB 3. +> It provides visual management of databases and tokens and an easy way to query your time series data. +> +> For more information, see the [InfluxDB 3 Explorer documentation](/influxdb3/explorer/). + +{{% show-in "enterprise" %}} #### Licensing When first starting a new instance, {{% product-name %}} prompts you to select a license type. @@ -273,45 +384,45 @@ InfluxDB 3 Enterprise licenses authorize the use of the InfluxDB 3 Enterprise so - **Commercial**: Commercial license with full access to InfluxDB 3 Enterprise capabilities. You can learn more on managing your InfluxDB 3 Enterprise license on the [Manage your license](https://docs.influxdata.com/influxdb3/enterprise/admin/license/)page. +{{% /show-in %}} ### Authentication and authorization -After you have [started the server](#start-influxdb), you can create and manage tokens using the `influxdb3` CLI or the HTTP API. -{{% product-name %}} uses token-based authentication and authorization which is enabled by default when you start the server. +{{% product-name %}} uses token-based authentication and authorization, which is enabled by default when you start the server. + With authentication enabled, you must provide a token with `influxdb3` CLI commands and HTTP API requests. + +{{% show-in "enterprise" %}} {{% product-name %}} supports the following types of tokens: - **admin token**: Grants access to all CLI actions and API endpoints. A server can have one admin token. -- **resource tokens**: Fine-grained permissions tokens that grant read and write access to specific resources (databases and system information endpoints) on the server. +- **resource tokens**: Tokens that grant read and write access to specific resources (databases and system information endpoints) on the server. - A database token grants access to write and query data in a database - A system token grants read access to system information endpoints and metrics for the server +{{% /show-in %}} +{{% show-in "core" %}} +{{% product-name %}} supports _admin_ tokens, which grant access to all CLI actions and API endpoints. +{{% /show-in %}} -InfluxDB 3 supports the `*` resource name wildcard to grant permissions to all -resources of a specific type. -You can create multiple resource tokens for different resources. +For more information about tokens and authorization, see [Manage tokens](/influxdb3/version/admin/tokens/). -When you create a token, InfluxDB 3 returns a token string in plain text -that you use to authenticate CLI commands and API requests. +#### Create an operator token -To have the `influxdb3` CLI use your admin token automatically, assign it to the -`INFLUXDB3_AUTH_TOKEN` environment variable. +After you start the server, create your first admin token. +The first admin token you create is the _operator_ token for the server. + +Use the `influxdb3` CLI or the HTTP API to create your operator token. > [!Important] -> #### Securely store your token -> -> InfluxDB lets you view the token string only when you create the token. -> Store your token in a secure location, as you cannot retrieve it from the database later. -> InfluxDB 3 stores only the token's hash and metadata in the catalog. - -#### Create an admin token - -To create an admin token, use the `influxdb3 create token --admin` subcommand--for example: +> **Store your token securely** +> +> InfluxDB displays the token string only when you create it. +> Store your token securely—you cannot retrieve it from the database later. {{< code-tabs-wrapper >}} - {{% code-tabs %}} [CLI](#) [Docker](#) @@ -319,8 +430,7 @@ To create an admin token, use the `influxdb3 create token --admin` subcommand--f {{% code-tab-content %}} ```bash -influxdb3 create token --admin \ - --host http://INFLUXDB_HOST +influxdb3 create token --admin ``` {{% /code-tab-content %}} @@ -336,146 +446,65 @@ docker exec -it CONTAINER_NAME influxdb3 create token --admin Replace {{% code-placeholder-key %}}`CONTAINER_NAME`{{% /code-placeholder-key %}} with the name of your running Docker container. {{% /code-tab-content %}} - {{< /code-tabs-wrapper >}} -The command returns a token string that you can use to authenticate CLI commands and API requests. -Store your token in a secure location, as you cannot retrieve it from the database later. +The command returns a token string for authenticating CLI commands and API requests. +Store your token securely—you cannot retrieve it from the database later. -For more information about tokens, see how to [Manage admin tokens](/influxdb3/version/admin/tokens/admin/). +#### Set your token for authentication -After you have created an admin token, you can use it to create database tokens and system tokens. +Use your operator token to authenticate server actions in {{% product-name %}}, +such as creating additional tokens, performing administrative tasks, and writing and querying data. -#### Create a database token +Use one of the following methods to provide your token and authenticate `influxdb3` CLI commands. -To create a database token, use the `influxdb3 create token` subcommand and pass the following: - -- `--permission`: Create a token with fine-grained permissions -- `--name`: A unique name for the token -- _Options_, for example: - - `--expiry` option with the token expiration time as a [duration](/influxdb3/enterprise/reference/glossary/#duration). - If an expiration isn't set, the token does not expire until revoked. - - `--token` option with the admin token to use for authentication -- Token permissions as a string literal in the `RESOURCE_TYPE:RESOURCE_NAMES:ACTIONS` format--for example: - - `"db:mydb:read,write"` - - `db:`: The `db` resource type, which specifies the token is for a database - - `mydb`: The name of the database to grant permissions to. This part supports the `*` wildcard, which grants permissions to all databases. - - `read,write`: A comma-separated list of permissions to grant to the token. - -The following example shows how to create a database token that expires in 90 days and has read and write permissions for all databases on the server: - -{{% code-placeholders "ADMIN_TOKEN" %}} - -```bash -influxdb3 create token \ - --permission \ - --expiry 90d \ - --token ADMIN_TOKEN \ - --host http://{{< influxdb/host >}} \ - --name "rw all databases" \ - "db:*:read,write" -``` -{{% /code-placeholders %}} - -In your command, replace {{% code-placeholder-key %}} `ADMIN_TOKEN`{{% /code-placeholder-key %}} with the admin token you created earlier. - -#### Create a system token - -A _system token_ grants read access to system information and metrics for the server, including the following HTTP API endpoints: - -- `/health` -- `/metrics` -- `/ping` - -To create a system token, use the `influxdb3 create token` subcommand and pass the following: -- `--permission`: Create a token with fine-grained permissions -- `--name`: A unique name for the token -- _Options_, for example: - - `--expiry` option with the token expiration time as a [duration](/influxdb3/enterprise/reference/glossary/#duration). - If an expiration isn't set, the token does not expire until revoked. - - `--token` option with the admin token to use for authentication - - `--host` option with the server host -- Token permissions as a string literal in the `RESOURCE_TYPE:RESOURCE_NAMES:ACTIONS` format--for example: - - `"system:health:read"` or `"system:*:read"` - - `system:`: The `system` resource type, which specifies the token is for a database. - - `health`: The list of system resources (endpoints) to grant permissions to. - This part supports the `*` wildcard, which grants permissions to all endpoints. - - `read`: The list of permissions to grant. _Only `read` is supported for system resources._ - -The following example shows how to create a system token that expires in 1 year and has read permissions for all system endpoints on the server: - -{{% code-placeholders "ADMIN_TOKEN" %}} - -```bash -influxdb3 create token \ - --permission \ - --expiry 1y \ - --token ADMIN_TOKEN \ - --host http://{{< influxdb/host >}} \ - --name "all system endpoints" \ - "system:*:read" -``` -{{% /code-placeholders %}} - -In your command, replace {{% code-placeholder-key %}} `ADMIN_TOKEN`{{% /code-placeholder-key %}} with the admin token you created earlier. - -For more information, see how to [Manage resource tokens](/influxdb3/version/admin/tokens/resource/). - -#### Use tokens to authorize CLI commands and API requests - -#### Use tokens to authorize CLI commands and API requests - -With authentication enabled (the default), {{% product-name %}} requires a -token for all `influxdb3` CLI commands and HTTP API requests. - -In the following examples, replace {{% code-placeholder-key %}}`AUTH_TOKEN`{{% /code-placeholder-key %}} with your {{% token-link "admin" %}} string. +In your command, replace {{% code-placeholder-key %}}`YOUR_AUTH_TOKEN`{{% /code-placeholder-key %}} with your token string (for example, the [operator token](#create-an-operator-token) from the previous step). {{< tabs-wrapper >}} {{% tabs %}} -[CLI](#cli-use-a-token) -[HTTP API](#api-use-a-token) +[Environment variable (recommended)](#) +[Command option](#) {{% /tabs %}} {{% tab-content %}} -For `influxdb3` to use your token automatically, assign it your - token to the `INFLUXDB3_AUTH_TOKEN` environment variable: -{{% code-placeholders "AUTH_TOKEN" %}} +Set the `INFLUXDB3_AUTH_TOKEN` environment variable to have the CLI use your token automatically: + +{{% code-placeholders "YOUR_AUTH_TOKEN" %}} ```bash -# Set the environment variable for future CLI commands -export INFLUXDB3_AUTH_TOKEN=AUTH_TOKEN +export INFLUXDB3_AUTH_TOKEN=YOUR_AUTH_TOKEN ``` {{% /code-placeholders %}} -Or to authenticate a single `influxdb3` CLI command and override `$INFLUXDB3_AUTH_TOKEN`, include the `--token` option: +{{% /tab-content %}} +{{% tab-content %}} -{{% code-placeholders "AUTH_TOKEN" %}} +Include the `--token` option with CLI commands: + +{{% code-placeholders "YOUR_AUTH_TOKEN" %}} ```bash -# Use the --token option for a single command influxdb3 show databases --token AUTH_TOKEN ``` {{% /code-placeholders %}} + {{% /tab-content %}} -{{% tab-content %}} -To authenticate HTTP API requests, include `Bearer ` in the `Authorization` header value: +{{< /tabs-wrapper >}} + +For HTTP API requests, include your token in the `Authorization` header--for example: {{% code-placeholders "AUTH_TOKEN" %}} ```bash -# Include the token in the Authorization HTTP request header curl "http://{{< influxdb/host >}}/api/v3/configure/database" \ --header "Authorization: Bearer AUTH_TOKEN" ``` {{% /code-placeholders %}} -{{% code-placeholders "SYSTEM_TOKEN" %}} -```bash -curl "http://{{< influxdb/host >}}/health" \ - --header "Authorization: Bearer SYSTEM_TOKEN" -``` -{{% /code-placeholders %}} +#### Learn more about tokens and permissions -Replace {{% code-placeholder-key %}}`SYSTEM_TOKEN`{{% /code-placeholder-key %}} with the system token string that grants access to system endpoints (`/health`, `/metrics`) -{{% /tab-content %}} -{{< /tabs-wrapper >}} +- [Manage admin tokens](/influxdb3/version/admin/tokens/admin/) - Understand and manage operator and named admin tokens +{{% show-in "enterprise" %}} +- [Manage resource tokens](/influxdb3/version/admin/tokens/resource/) - Create, list, and delete resource tokens +{{% /show-in %}} +- [Authentication](/influxdb3/version/reference/internals/authentication/) - Understand authentication, authorizations, and permissions in {{% product-name %}} ### Data model @@ -493,17 +522,18 @@ This tutorial covers many of the recommended tools. | Tool | Administration | Write | Query | | :------------------------------------------------------------------------------------------------ | :----------------------: | :----------------------: | :----------------------: | -| [Chronograf](/chronograf/v1/) | - | - | **{{< icon "check" >}}** | -| `influx` CLI | - | - | - | -| [`influxdb3` CLI](#influxdb3-cli){{< req text="\* " color="magenta" >}} | **{{< icon "check" >}}** | **{{< icon "check" >}}** | **{{< icon "check" >}}** | -| `influxctl` CLI | - | - | - | -| [InfluxDB HTTP API](#influxdb-http-api){{< req text="\* " color="magenta" >}} | **{{< icon "check" >}}** | **{{< icon "check" >}}** | **{{< icon "check" >}}** | -| InfluxDB user interface | - | - | - | +| **`influxdb3` CLI** {{< req text="\* " color="magenta" >}} | **{{< icon "check" >}}** | **{{< icon "check" >}}** | **{{< icon "check" >}}** | +| **InfluxDB HTTP API** {{< req text="\* " color="magenta" >}} | **{{< icon "check" >}}** | **{{< icon "check" >}}** | **{{< icon "check" >}}** | +| **InfluxDB 3 Explorer** {{< req text="\* " color="magenta" >}} | **{{< icon "check" >}}** | - | **{{< icon "check" >}}** | | [InfluxDB 3 client libraries](/influxdb3/version/reference/client-libraries/v3/) | - | **{{< icon "check" >}}** | **{{< icon "check" >}}** | | [InfluxDB v2 client libraries](/influxdb3/version/reference/client-libraries/v2/) | - | **{{< icon "check" >}}** | - | | [InfluxDB v1 client libraries](/influxdb3/version/reference/client-libraries/v1/) | - | **{{< icon "check" >}}** | **{{< icon "check" >}}** | -| [InfluxDB 3 Processing engine](#python-plugins-and-the-processing-engine){{< req text="\* " color="magenta" >}} | | **{{< icon "check" >}}** | **{{< icon "check" >}}** | +| [InfluxDB 3 processing engine](#python-plugins-and-the-processing-engine){{< req text="\* " color="magenta" >}} | | **{{< icon "check" >}}** | **{{< icon "check" >}}** | | [Telegraf](/telegraf/v1/) | - | **{{< icon "check" >}}** | - | +| [Chronograf](/chronograf/v1/) | - | - | - | +| `influx` CLI | - | - | - | +| `influxctl` CLI | - | - | - | +| InfluxDB v2.x user interface | - | - | - | | **Third-party tools** | | | | | Flight SQL clients | - | - | **{{< icon "check" >}}** | | [Grafana](/influxdb3/version/visualize-data/grafana/) | - | - | **{{< icon "check" >}}** | @@ -518,6 +548,15 @@ InfluxDB is a schema-on-write database. You can start writing data and InfluxDB After a schema is created, InfluxDB validates future write requests against it before accepting the data. Subsequent requests can add new fields on-the-fly, but can't add new tags. +{{% show-in "core" %}} +> [!Note] +> #### Core is optimized for recent data +> +> {{% product-name %}} is optimized for recent data but accepts writes from any time period. +> The system persists data to Parquet files for historical analysis with [InfluxDB 3 Enterprise](/influxdb3/enterprise/get-started/) or third-party tools. +> For extended historical queries and optimized data organization, consider using [InfluxDB 3 Enterprise](/influxdb3/enterprise/get-started/). +{{% /show-in %}} + #### Write data in line protocol syntax {{% product-name %}} accepts data in [line protocol](/influxdb3/version/reference/syntax/line-protocol/) syntax. @@ -558,14 +597,8 @@ Use the `influxdb3 write` command to write data to a database. In the code samples, replace the following placeholders with your values: -- {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}: The name of the [database](/influxdb3/version/admin/databases/) to write to. -{{% show-in "core" %}} -- {{% code-placeholder-key %}}`TOKEN`{{% /code-placeholder-key %}}: A [token](/influxdb3/version/admin/tokens/) for your {{% product-name %}} server. -{{% /show-in %}} -{{% show-in "enterprise" %}} -- {{% code-placeholder-key %}}`TOKEN`{{% /code-placeholder-key %}}: A [token](/influxdb3/version/admin/tokens/) - with permission to write to the specified database. -{{% /show-in %}} +- {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}: the name of the [database](/influxdb3/version/admin/databases/) to write to. +- {{% code-placeholder-key %}}`AUTH_TOKEN`{{% /code-placeholder-key %}}: your {{% token-link "database" %}}{{% show-in "enterprise" %}} with permission to write to the specified database{{% /show-in %}} ##### Write data via stdin @@ -776,7 +809,7 @@ Replace the following placeholders with your values: - {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}: the name of the database to create - {{% code-placeholder-key %}}`AUTH_TOKEN`{{% /code-placeholder-key %}}: the {{% token-link "admin" %}} for your {{% product-name %}} server -To learn more about a subcommand, use the `-h, --help` flag or view the [InfluxDB 3 CLI reference](/influxdb3/version/reference/cli/create/): +To learn more about a subcommand, use the `-h, --help` flag or view the [InfluxDB 3 CLI reference](/influxdb3/version/reference/cli/influxdb3/create): ```bash influxdb3 create -h @@ -784,7 +817,15 @@ influxdb3 create -h ### Query data -InfluxDB 3 now supports native SQL for querying, in addition to InfluxQL, an SQL-like language customized for time series queries. +InfluxDB 3 supports native SQL for querying, in addition to InfluxQL, an +SQL-like language customized for time series queries. + +{{% show-in "core" %}} +{{< product-name >}} limits +query time ranges to 72 hours (both recent and historical) to ensure query performance. +For more information about the 72-hour limitation, see the +[update on InfluxDB 3 Core’s 72-hour limitation](https://www.influxdata.com/blog/influxdb3-open-source-public-alpha-jan-27/). +{{% /show-in %}} > [!Note] > Flux, the language introduced in InfluxDB 2.0, is **not** supported in InfluxDB 3. @@ -969,29 +1010,17 @@ print(table.group_by('cpu').aggregate([('time_system', 'mean')])) For more information about the Python client library, see the [`influxdb3-python` repository](https://github.com/InfluxCommunity/influxdb3-python) in GitHub. - ### Query using InfluxDB 3 Explorer (Beta) -You can use the InfluxDB 3 Explorer query interface by downloading the Docker image. - -```bash -docker pull quay.io/influxdb/influxdb3-explorer:latest -``` - -Run the interface using: - -```bash -docker run --name influxdb3-explorer -p 8086:8888 quay.io/influxdb/influxdb3-explorer:latest -``` - -With the default settings above, you can access the UI at http://localhost:8086. -Set your expected database connection details on the Settings page. -From there, you can query data, browser your database schema, and do basic -visualization of your time series data. +You can use the InfluxDB 3 Explorer web-based interface to query and visualize data, +and administer your {{% product-name %}} instance. +For more information, see how to [install InfluxDB 3 Explorer (Beta)](/influxdb3/explorer/install/) using Docker +and get started querying your data. ### Last values cache {{% product-name %}} supports a **last-n values cache** which stores the last N values in a series or column hierarchy in memory. This gives the database the ability to answer these kinds of queries in under 10 milliseconds. + You can use the `influxdb3` CLI to [create a last value cache](/influxdb3/version/reference/cli/influxdb3/create/last_cache/). {{% code-placeholders "DATABASE_NAME|AUTH_TOKEN|TABLE_NAME|CACHE_NAME" %}} @@ -1037,7 +1066,7 @@ _You can create a last values cache per time series, but be mindful of high card #### Query a last values cache -To query data from the LVC, use the [`last_cache()`](influxdb3/version/reference/sql/functions/cache/#last_cache) function in your query--for example: +To query data from the LVC, use the [`last_cache()`](/influxdb3/version/reference/sql/functions/cache/#last_cache) function in your query--for example: ```bash influxdb3 query \ @@ -1120,7 +1149,7 @@ influxdb3 create distinct_cache \ #### Query a distinct values cache -To use the distinct values cache, call it using the `distinct_cache()` function in your query--for example: +To query data from the distinct values cache, use the [`distinct_cache()`](/influxdb3/version/reference/sql/functions/cache/#distinct_cache) function in your query--for example: ```bash influxdb3 query \ @@ -1267,7 +1296,7 @@ To test a plugin, do the following: 1. Create a _plugin directory_--for example, `/path/to/.influxdb/plugins` 2. [Start the InfluxDB server](#start-influxdb) and include the `--plugin-dir ` option. -3. Save the [example plugin code](#example-python-plugin-for-wal-flush) to a plugin file inside of the plugin directory. If you haven't yet written data to the table in the example, comment out the lines where it queries. +3. Save the [example plugin code](#example-python-plugin-for-wal-rows) to a plugin file inside of the plugin directory. If you haven't yet written data to the table in the example, comment out the lines where it queries. 4. To run the test, enter the following command with the following options: - `--lp` or `--file`: The line protocol to test @@ -1361,6 +1390,7 @@ influxdb3 enable trigger \ For more information, see [Python plugins and the Processing engine](/influxdb3/version/plugins/). +{{% show-in "enterprise" %}} ### Multi-server setup {{% product-name %}} is built to support multi-node setups for high availability, read replicas, and flexible implementations depending on use case. @@ -1523,7 +1553,7 @@ For a robust and effective setup for managing time-series data, you can run inge --mode ingest \ --object-store s3 \ --bucket influxdb-3-enterprise-storage \ - -- http-bind {{< influxdb/host >}} \ + --http-bind {{< influxdb/host >}} \ --aws-access-key-id \ --aws-secret-access-key ``` @@ -1585,7 +1615,7 @@ For a robust and effective setup for managing time-series data, you can run inge --mode query \ --object-store s3 \ --bucket influxdb-3-enterprise-storage \ - -- http-bind localhost:8383 \ + --http-bind localhost:8383 \ --aws-access-key-id \ --aws-secret-access-key ``` @@ -1604,7 +1634,7 @@ For a robust and effective setup for managing time-series data, you can run inge --mode query \ --object-store s3 \ --bucket influxdb-3-enterprise-storage \ - -- http-bind localhost:8484 \ + --http-bind localhost:8484 \ --aws-access-key-id \ ``` @@ -1679,4 +1709,5 @@ Replace the following placeholders with your values: - {{% code-placeholder-key %}}`AUTH_TOKEN`{{% /code-placeholder-key %}}: your {{% token-link "admin" %}} - {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}: the name of the database to create the file index in - {{% code-placeholder-key %}}`TABLE_NAME`{{% /code-placeholder-key %}}: the name of the table to create the file index in -- {{% code-placeholder-key %}}`COLUMNS`{{% /code-placeholder-key %}}: a comma-separated list of columns to index on, for example, `host,application` \ No newline at end of file +- {{% code-placeholder-key %}}`COLUMNS`{{% /code-placeholder-key %}}: a comma-separated list of columns to index on, for example, `host,application` +{{% /show-in %}} \ No newline at end of file diff --git a/content/shared/influxdb3-internals-reference/authentication.md b/content/shared/influxdb3-internals-reference/authentication.md index 843fc7c6b..491238dce 100644 --- a/content/shared/influxdb3-internals-reference/authentication.md +++ b/content/shared/influxdb3-internals-reference/authentication.md @@ -1,7 +1,7 @@ {{% product-name %}} uses an Attribute-Based Access Control (ABAC) model to -manage permissions. +manage permissions and supports multiple token types for different authentication scenarios. {{% show-in "enterprise" %}} This model allows for fine-grained control over access to resources and actions @@ -39,5 +39,10 @@ The ABAC model includes the following components: {{% /show-in %}} - **Resource**: The objects that can be accessed or manipulated. + Resources have attributes such as identifier and name. In {{% product-name %}}, resources include databases and system information endpoints. - Resources have attributes such as identifier and name. \ No newline at end of file + {{% show-in "enterprise" %}} + - Database tokens provide access to specific databases for actions like writing and querying data. + - System tokens provide access to system-level resources, such as API endpoints for server runtime statistics and health. + Access controls for system information API endpoints help prevent information leaks and attacks (such as DoS). + {{% /show-in %}} \ No newline at end of file diff --git a/content/shared/influxdb3/_index.md b/content/shared/influxdb3/_index.md new file mode 100644 index 000000000..505e32a12 --- /dev/null +++ b/content/shared/influxdb3/_index.md @@ -0,0 +1,45 @@ + +{{% product-name %}} is a database built to collect, process, transform, and store event and time series data, and is ideal for use cases that require real-time ingest and fast query response times to build user interfaces, monitoring, and automation solutions. + +Common use cases include: + +- Monitoring sensor data +- Server monitoring +- Application performance monitoring +- Network monitoring +- Financial market and trading analytics +- Behavioral analytics + +InfluxDB is optimized for scenarios where near real-time data monitoring is essential and queries need to return quickly to support user experiences such as dashboards and interactive user interfaces. + +{{% show-in "enterprise" %}} +{{% product-name %}} is built on InfluxDB 3 Core, the InfluxDB 3 open source release. +{{% /show-in %}} +{{% show-in "core" %}} +{{% product-name %}} is the InfluxDB 3 open source release. +{{% /show-in %}} + +Core's feature highlights include: + +- Diskless architecture with object storage support (or local disk with no dependencies) +- Fast query response times (under 10ms for last-value queries, or 30ms for distinct metadata) +- Embedded Python VM for plugins and triggers +- Parquet file persistence +- Compatibility with InfluxDB 1.x and 2.x write APIs + +{{% show-in "core" %}} +[Get started with Core](/influxdb3/version/get-started/) +{{% /show-in %}} + +The Enterprise version adds the following features to Core: + +- Historical query capability and single series indexing +- High availability +- Read replicas +- Enhanced security (coming soon) +- Row-level delete support (coming soon) +- Integrated admin UI (coming soon) + +{{% show-in "core" %}} +For more information, see how to [get started with Enterprise](/influxdb3/enterprise/get-started/). +{{% /show-in %}} \ No newline at end of file diff --git a/content/shared/v3-core-enterprise-release-notes/_index.md b/content/shared/v3-core-enterprise-release-notes/_index.md index 3e3cbebbb..ff46e3d03 100644 --- a/content/shared/v3-core-enterprise-release-notes/_index.md +++ b/content/shared/v3-core-enterprise-release-notes/_index.md @@ -5,6 +5,53 @@ > All updates to Core are automatically included in Enterprise. > The Enterprise sections below only list updates exclusive to Enterprise. +## v3.1.0 {date="2025-05-29"} +**Core**: revision 482dd8aac580c04f37e8713a8fffae89ae8bc264 + +**Enterprise**: revision 2cb23cf32b67f9f0d0803e31b356813a1a151b00 + +### Core + +#### Token and Security Updates +- Named admin tokens can now be created, with configurable expirations +- `health`, `ping`, and `metrics` endpoints can now be opted out of authorization +- `Basic $TOKEN` is now supported for all APIs +- Additional info available when creating a new token +- Additional info available when starting InfuxDB using `--without-auth` + +#### Additional Updates +- New catalog metrics available for count operations +- New object store metrics available for transfer latencies and transfer sizes +- New query duration metrics available for Last Value caches +- `/ping` API now contains versioning headers +- Other performance improvements + +#### Fixes +- New tags are now backfilled with NULL instead of empty strings +- Bitcode deserialization error fixed +- Series key metadata not persisting to Parquet is now fixed +- Other general fixes and corrections + +### Enterprise + +#### Token and Security Updates +- Resource tokens now use resource names in `show tokens` +- Tokens can now be granted `CREATE` permission for creating databases + +#### Additional Updates +- Last value caches populate on creation and reload on restart +- Distinct value caches populate on creation and reload on restart +- Other performance improvements +- Replaces remaining "INFLUXDB_IOX" Dockerfile environment variables with the following: + - `ENV INFLUXDB3_OBJECT_STORE=file` + - `ENV INFLUXDB3_DB_DIR=/var/lib/influxdb3` + +#### Fixes +- Improvements and fixes for license validations +- False positive fixed for catalog error on shutdown +- UX improvements for error and onboarding messages +- Other general fixes and corrections + ## v3.0.3 {date="2025-05-16"} **Core**: revision 384c457ef5f0d5ca4981b22855e411d8cac2688e diff --git a/content/shared/v3-core-get-started/_index.md b/content/shared/v3-core-get-started/_index.md deleted file mode 100644 index 5d343b9b0..000000000 --- a/content/shared/v3-core-get-started/_index.md +++ /dev/null @@ -1,1248 +0,0 @@ -InfluxDB is a database built to collect, process, transform, and store event and time series data, and is ideal for use cases that require real-time ingest and fast query response times to build user interfaces, monitoring, and automation solutions. - -Common use cases include: - -- Monitoring sensor data -- Server monitoring -- Application performance monitoring -- Network monitoring -- Financial market and trading analytics -- Behavioral analytics - -InfluxDB is optimized for scenarios where near real-time data monitoring is essential and queries need to return quickly to support user experiences such as dashboards and interactive user interfaces. - -{{% product-name %}} is the InfluxDB 3 open source release. -Core's feature highlights include: - -* Diskless architecture with object storage support (or local disk with no dependencies) -* Fast query response times (under 10ms for last-value queries, or 30ms for distinct metadata) -* Embedded Python VM for plugins and triggers -* Parquet file persistence -* Compatibility with InfluxDB 1.x and 2.x write APIs - -The Enterprise version adds the following features to Core: - -* Historical query capability and single series indexing -* High availability -* Read replicas -* Enhanced security (coming soon) -* Row-level delete support (coming soon) -* Integrated admin UI (coming soon) - -For more information, see how to [get started with Enterprise](/influxdb3/enterprise/get-started/). - -### What's in this guide - -This guide covers InfluxDB 3 Core (the open source release), including the following topics: - -- [Install and startup](#install-and-startup) -- [Authentication and authorization](#authentication-and-authorization) -- [Data Model](#data-model) -- [Tools to use](#tools-to-use) -- [Write data](#write-data) -- [Query data](#query-data) -- [Last values cache](#last-values-cache) -- [Distinct values cache](#distinct-values-cache) -- [Python plugins and the processing engine](#python-plugins-and-the-processing-engine) - -> [!Tip] -> #### Find support for {{% product-name %}} -> -> The [InfluxDB Discord server](https://discord.gg/9zaNCW2PRT) is the best place to find support for {{% product-name %}}. -> For other InfluxDB versions, see the [Support and feedback](#bug-reports-and-feedback) options. - -### Install and startup - -{{% product-name %}} runs on **Linux**, **macOS**, and **Windows**. - -{{% tabs-wrapper %}} -{{% tabs %}} -[Linux or macOS](#linux-or-macos) -[Windows](#windows) -[Docker](#docker) -{{% /tabs %}} -{{% tab-content %}} - -To get started quickly, download and run the install script--for example, using [curl](https://curl.se/download.html): - - -```bash -curl -O https://www.influxdata.com/d/install_influxdb3.sh \ -&& sh install_influxdb3.sh -``` - -Or, download and install [build artifacts](/influxdb3/core/install/#download-influxdb-3-core-binaries): - -- [Linux | AMD64 (x86_64) | GNU](https://dl.influxdata.com/influxdb/releases/influxdb3-{{< product-key >}}-{{< latest-patch >}}_linux_amd64.tar.gz) - • - [sha256](https://dl.influxdata.com/influxdb/releases/influxdb3-{{< product-key >}}-{{< latest-patch >}}_linux_amd64.tar.gz.sha256) -- [Linux | ARM64 (AArch64) | GNU](https://dl.influxdata.com/influxdb/releases/influxdb3-{{< product-key >}}-{{< latest-patch >}}_linux_arm64.tar.gz) - • - [sha256](https://dl.influxdata.com/influxdb/releases/influxdb3-{{< product-key >}}-{{< latest-patch >}}_linux_arm64.tar.gz.sha256) -- [macOS | Silicon (ARM64)](https://dl.influxdata.com/influxdb/releases/influxdb3-{{< product-key >}}-{{< latest-patch >}}_darwin_arm64.tar.gz) - • - [sha256](https://dl.influxdata.com/influxdb/releases/influxdb3-{{< product-key >}}-{{< latest-patch >}}_darwin_arm64.tar.gz.sha256) - -> [!Note] -> macOS Intel builds are coming soon. - - -{{% /tab-content %}} -{{% tab-content %}} - -Download and install the {{% product-name %}} [Windows (AMD64, x86_64) binary](https://dl.influxdata.com/influxdb/releases/influxdb3-{{< product-key >}}-{{< latest-patch >}}-windows_amd64.zip) - • -[sha256](https://dl.influxdata.com/influxdb/releases/influxdb3-{{< product-key >}}-{{< latest-patch >}}-windows_amd64.zip.sha256) - -{{% /tab-content %}} -{{% tab-content %}} - - -The [`influxdb:3-core` image](https://hub.docker.com/_/influxdb/tags?tag=3-core&name=3-core) -is available for x86_64 (AMD64) and ARM64 architectures. - -Pull the image: - - -```bash -docker pull influxdb:3-core -``` - -##### InfluxDB 3 Explorer -- Query Interface (Beta) - -You can download the new InfluxDB 3 Explorer query interface using Docker. -Explorer is currently in beta. Pull the image: - -```bash -docker pull quay.io/influxdb/influxdb3-explorer:latest -``` - - -{{% /tab-content %}} -{{% /tabs-wrapper %}} - -_Build artifacts and images update with every merge into the {{% product-name %}} `main` branch._ - -#### Verify the install - -After you have installed {{% product-name %}}, enter the following command to verify that it completed successfully: - -```bash -influxdb3 --version -``` - -If your system doesn't locate `influxdb3`, then `source` the configuration file (for example, .bashrc, .zshrc) for your shell--for example: - - -```zsh -source ~/.zshrc -``` - -#### Start InfluxDB - -To start your InfluxDB instance, use the `influxdb3 serve` command and provide the following: - -`--object-store`: Specifies the type of object store to use. - InfluxDB supports the following: local file system (`file`), `memory`, - S3 (and compatible services like Ceph or Minio) (`s3`), - Google Cloud Storage (`google`), and Azure Blob Storage (`azure`). - The default is `file`. - Depending on the object store type, you may need to provide additional options - for your object store configuration. -- `--node-id`: A string identifier that distinguishes individual server instances within the cluster. - This forms the final part of the storage path: `/`. - In a multi-node setup, this ID is used to reference specific nodes. - -The following examples show how to start {{% product-name %}} with different object store configurations. - -> [!Note] -> #### Diskless architecture -> -> InfluxDB 3 supports a diskless architecture that can operate with object -> storage alone, eliminating the need for locally attached disks. -> {{% product-name %}} can also work with only local disk storage when needed. - - -##### Filesystem object store - -Store data in a specified directory on the local filesystem. -This is the default object store type. - -Replace the following with your values: - -```bash -# Filesystem object store -# Provide the filesystem directory -influxdb3 serve \ - --node-id host01 \ - --object-store file \ - --data-dir ~/.influxdb3 -``` - -To run the [Docker image](/influxdb3/version/install/#docker-image) and persist data to the filesystem, mount a volume for the object store-for example, pass the following options: - -- `-v /path/on/host:/path/in/container`: Mounts a directory from your filesystem to the container -- `--object-store file --data-dir /path/in/container`: Uses the mount for server storage - - - -```bash -# Filesystem object store with Docker -# Create a mount -# Provide the mount path -docker run -it \ - -v /path/on/host:/path/in/container \ - influxdb:3-core influxdb3 serve \ - --node-id my_host \ - --object-store file \ - --data-dir /path/in/container -``` - -> [!Note] -> -> The {{% product-name %}} Docker image exposes port `8181`, the `influxdb3` server default for HTTP connections. -> To map the exposed port to a different port when running a container, see the Docker guide for [Publishing and exposing ports](https://docs.docker.com/get-started/docker-concepts/running-containers/publishing-ports/). - -##### S3 object store - -Store data in an S3-compatible object store. -This is useful for production deployments that require high availability and durability. -Provide your bucket name and credentials to access the S3 object store. - -```bash -# S3 object store (default is the us-east-1 region) -# Specify the object store type and associated options -influxdb3 serve \ - --node-id host01 \ - --object-store s3 \ - --bucket OBJECT_STORE_BUCKET \ - --aws-access-key AWS_ACCESS_KEY_ID \ - --aws-secret-access-key AWS_SECRET_ACCESS_KEY -``` - -```bash -# Minio or other open source object store -# (using the AWS S3 API with additional parameters) -# Specify the object store type and associated options -influxdb3 serve \ - --node-id host01 \ - --object-store s3 \ - --bucket OBJECT_STORE_BUCKET \ - --aws-access-key-id AWS_ACCESS_KEY_ID \ - --aws-secret-access-key AWS_SECRET_ACCESS_KEY \ - --aws-endpoint ENDPOINT \ - --aws-allow-http -``` - -#### Memory object store - -Store data in RAM without persisting it on shutdown. -It's useful for rapid testing and development. - -```bash -# Memory object store -# Stores data in RAM; doesn't persist data -influxdb3 serve \ ---node-id host01 \ ---object-store memory -``` - -For more information about server options, use the CLI help or view the [InfluxDB 3 CLI reference](/influxdb3/version/reference/cli/serve/): - -```bash -influxdb3 serve --help -``` - -### Authentication and authorization - -After you have [started the server](#start-influxdb), you can create and manage tokens using the `influxdb3` CLI or the HTTP API. -{{% product-name %}} uses token-based authentication and authorization which is enabled by default when you start the server. -With authentication enabled, you must provide a token with `influxdb3` CLI commands and HTTP API requests. -An {{% product-name %}} instance can have one _admin token_, which grants access to all CLI actions and API endpoints. - -When you create a token, InfluxDB 3 returns a token string in plain text -that you use to authenticate CLI commands and API requests. - -To have the `influxdb3` CLI use your admin token automatically, assign it to the -`INFLUXDB3_AUTH_TOKEN` environment variable. - -> [!Important] -> #### Securely store your token -> -> InfluxDB lets you view the token string only when you create the token. -> Store your token in a secure location, as you cannot retrieve it from the database later. -> InfluxDB 3 stores only the token's hash and metadata in the catalog. - -#### Create an admin token - -To create an admin token, use the `influxdb3 create token --admin` subcommand--for example: - -{{< code-tabs-wrapper >}} - -{{% code-tabs %}} -[CLI](#) -[Docker](#) -{{% /code-tabs %}} -{{% code-tab-content %}} - -```bash -influxdb3 create token --admin \ - --host http://INFLUXDB_HOST -``` - -{{% /code-tab-content %}} -{{% code-tab-content %}} - -{{% code-placeholders "CONTAINER_NAME" %}} -```bash -# With Docker — in a new terminal: -docker exec -it CONTAINER_NAME influxdb3 create token --admin -``` -{{% /code-placeholders %}} - -Replace {{% code-placeholder-key %}}`CONTAINER_NAME`{{% /code-placeholder-key %}} with the name of your running Docker container. - -{{% /code-tab-content %}} - -{{< /code-tabs-wrapper >}} - -The command returns a token string that you can use to authenticate CLI commands and API requests. -Store your token in a secure location, as you cannot retrieve it from the database later. - -For more information about tokens, see how to [Manage admin tokens](/influxdb3/version/admin/tokens/admin/). - -#### Use tokens to authorize CLI commands and API requests - -With authentication enabled (the default), {{% product-name %}} requires a -token for all `influxdb3` CLI commands and HTTP API requests. - -In the following examples, replace {{% code-placeholder-key %}}`AUTH_TOKEN`{{% /code-placeholder-key %}} with your {{% token-link "admin" %}} string. - -{{< tabs-wrapper >}} -{{% tabs %}} -[CLI](#cli-use-a-token) -[HTTP API](#api-use-a-token) -{{% /tabs %}} -{{% tab-content %}} -For `influxdb3` to use your token automatically, assign it your - token to the `INFLUXDB3_AUTH_TOKEN` environment variable: - -{{% code-placeholders "AUTH_TOKEN" %}} -```bash -# Set the environment variable for future CLI commands -export INFLUXDB3_AUTH_TOKEN=AUTH_TOKEN -``` -{{% /code-placeholders %}} - -Or to authenticate a single `influxdb3` CLI command and override `$INFLUXDB3_AUTH_TOKEN`, include the `--token` option: - -{{% code-placeholders "AUTH_TOKEN" %}} -```bash -# Use the --token option for a single command -influxdb3 show databases --token AUTH_TOKEN -``` -{{% /code-placeholders %}} -{{% /tab-content %}} -{{% tab-content %}} -To authenticate HTTP API requests, include `Bearer ` in the `Authorization` header value: - -{{% code-placeholders "AUTH_TOKEN" %}} -```bash -# Include the token in the Authorization HTTP request header -curl "http://{{< influxdb/host >}}/api/v3/configure/database" \ - --header "Authorization: Bearer AUTH_TOKEN" -``` -{{% /code-placeholders %}} -{{% /tab-content %}} -{{< /tabs-wrapper >}} - -### Data model - -The database server contains logical databases, which have tables, which have columns. Compared to previous versions of InfluxDB you can think of a database as a `bucket` in v2 or as a `db/retention_policy` in v1. A `table` is equivalent to a `measurement`, which has columns that can be of type `tag` (a string dictionary), `int64`, `float64`, `uint64`, `bool`, or `string` and finally every table has a `time` column that is a nanosecond precision timestamp. - -In InfluxDB 3, every table has a primary key--the ordered set of tags and the time--for its data. -This is the sort order used for all Parquet files that get created. When you create a table, either through an explicit call or by writing data into a table for the first time, it sets the primary key to the tags in the order they arrived. This is immutable. Although InfluxDB is still a _schema-on-write_ database, the tag column definitions for a table are immutable. - -Tags should hold unique identifying information like `sensor_id`, or `building_id` or `trace_id`. All other data should be kept in fields. You will be able to add fast last N value and distinct value lookups later for any column, whether it is a field or a tag. - -### Tools to use - -The following table compares tools that you can use to interact with {{% product-name %}}. -This tutorial covers many of the recommended tools. - -| Tool | Administration | Write | Query | -| :------------------------------------------------------------------------------------------------ | :----------------------: | :----------------------: | :----------------------: | -| [Chronograf](/chronograf/v1/) | - | - | **{{< icon "check" >}}** | -| `influx` CLI | - | - | - | -| [`influxdb3` CLI](#influxdb3-cli){{< req text="\* " color="magenta" >}} | **{{< icon "check" >}}** | **{{< icon "check" >}}** | **{{< icon "check" >}}** | -| `influxctl` CLI | - | - | - | -| [InfluxDB HTTP API](#influxdb-http-api){{< req text="\* " color="magenta" >}} | **{{< icon "check" >}}** | **{{< icon "check" >}}** | **{{< icon "check" >}}** | -| InfluxDB user interface | - | - | - | -| [InfluxDB 3 client libraries](/influxdb3/version/reference/client-libraries/v3/) | - | **{{< icon "check" >}}** | **{{< icon "check" >}}** | -| [InfluxDB v2 client libraries](/influxdb3/version/reference/client-libraries/v2/) | - | **{{< icon "check" >}}** | - | -| [InfluxDB v1 client libraries](/influxdb3/version/reference/client-libraries/v1/) | - | **{{< icon "check" >}}** | **{{< icon "check" >}}** | -| [InfluxDB 3 Processing engine](#python-plugins-and-the-processing-engine){{< req text="\* " color="magenta" >}} | | **{{< icon "check" >}}** | **{{< icon "check" >}}** | -| [Telegraf](/telegraf/v1/) | - | **{{< icon "check" >}}** | - | -| **Third-party tools** | | | | -| Flight SQL clients | - | - | **{{< icon "check" >}}** | -| [Grafana](/influxdb3/version/visualize-data/grafana/) | - | - | **{{< icon "check" >}}** | - -{{< caption >}} -{{< req type="key" text="Covered in this guide" color="magenta" >}} -{{< /caption >}} - -### Write data - -InfluxDB is a schema-on-write database. You can start writing data and InfluxDB creates the logical database, tables, and their schemas on the fly. -After a schema is created, InfluxDB validates future write requests against it before accepting the data. -Subsequent requests can add new fields on-the-fly, but can't add new tags. - -> [!Note] -> #### Core is optimized for recent data -> -> {{% product-name %}} is optimized for recent data but accepts writes from any time period. -> The system persists data to Parquet files for historical analysis with [InfluxDB 3 Enterprise](/influxdb3/enterprise/get-started/) or third-party tools. -> For extended historical queries and optimized data organization, consider using [InfluxDB 3 Enterprise](/influxdb3/enterprise/get-started/). - -#### Write data in line protocol syntax - -{{% product-name %}} accepts data in [line protocol](/influxdb3/core/reference/syntax/line-protocol/) syntax. -The following code block is an example of time series data in [line protocol](/influxdb3/core/reference/syntax/line-protocol/) syntax: - -- `cpu`: the table name. -- `host`, `region`, `applications`: the tags. A tag set is an ordered, comma-separated list of key/value pairs where the values are strings. -- `val`, `usage_percent`, `status`: the fields. A field set is a comma-separated list of key/value pairs. -- timestamp: If you don't specify a timestamp, InfluxData uses the time when data is written. - The default precision is a nanosecond epoch. - To specify a different precision, pass the `precision` parameter in your CLI command or API request. - -``` -cpu,host=Alpha,region=us-west,application=webserver val=1i,usage_percent=20.5,status="OK" -cpu,host=Bravo,region=us-east,application=database val=2i,usage_percent=55.2,status="OK" -cpu,host=Charlie,region=us-west,application=cache val=3i,usage_percent=65.4,status="OK" -cpu,host=Bravo,region=us-east,application=database val=4i,usage_percent=70.1,status="Warn" -cpu,host=Bravo,region=us-central,application=database val=5i,usage_percent=80.5,status="OK" -cpu,host=Alpha,region=us-west,application=webserver val=6i,usage_percent=25.3,status="Warn" -``` - -### Write data using the CLI - -To quickly get started writing data, you can use the `influxdb3` CLI. - -> [!Note] -> For batching and higher-volume write workloads, we recommend using the [HTTP API](#write-data-using-the-http-api). -> -> #### Write data using InfluxDB API client libraries -> -> InfluxDB provides supported client libraries that integrate with your code -> to construct data as time series points and write the data as line protocol to your {{% product-name %}} database. -> For more information, see how to [use InfluxDB client libraries to write data](/influxdb3/version/write-data/api-client-libraries/). - -##### Example: write data using the influxdb3 CLI - -Use the `influxdb3 write` command to write data to a database. - -In the code samples, replace the following placeholders with your values: - -- {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}: the name of the [database](/influxdb3/version/admin/databases/) to write to. -- {{% code-placeholder-key %}}`AUTH_TOKEN`{{% /code-placeholder-key %}}: your {{% token-link "database" %}}{{% show-in "enterprise" %}} with permission to write to the specified database{{% /show-in %}} - -##### Write data via stdin - -Pass data as quoted line protocol via standard input (stdin)--for example: - -{{% code-placeholders "DATABASE_NAME|AUTH_TOKEN" %}} -```bash -influxdb3 write \ - --database DATABASE_NAME \ - --token AUTH_TOKEN \ - --precision ns \ - --accept-partial \ -'cpu,host=Alpha,region=us-west,application=webserver val=1i,usage_percent=20.5,status="OK" -cpu,host=Bravo,region=us-east,application=database val=2i,usage_percent=55.2,status="OK" -cpu,host=Charlie,region=us-west,application=cache val=3i,usage_percent=65.4,status="OK" -cpu,host=Bravo,region=us-east,application=database val=4i,usage_percent=70.1,status="Warn" -cpu,host=Bravo,region=us-central,application=database val=5i,usage_percent=80.5,status="OK" -cpu,host=Alpha,region=us-west,application=webserver val=6i,usage_percent=25.3,status="Warn"' -``` -{{% /code-placeholders %}} - -##### Write data from a file - -Pass the `--file` option to write line protocol you have saved to a file--for example, save the -[sample line protocol](#write-data-in-line-protocol-syntax) to a file named `server_data` -and then enter the following command: - -{{% code-placeholders "DATABASE_NAME|AUTH_TOKEN" %}} -```bash -influxdb3 write \ - --database DATABASE_NAME \ - --token AUTH_TOKEN \ - --precision ns \ - --accept-partial \ - --file path/to/server_data -``` -{{% /code-placeholders %}} - -Replace the following placeholders with your values: -- {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}: the name of the [database](/influxdb3/version/admin/databases/) to write to. -- {{% code-placeholder-key %}}`AUTH_TOKEN`{{% /code-placeholder-key %}}: your {{% token-link "database" %}}{{% show-in "enterprise" %}} with permission to write to the specified database{{% /show-in %}} - -### Write data using the HTTP API - -{{% product-name %}} provides three write API endpoints that respond to HTTP `POST` requests. -The `/api/v3/write_lp` endpoint is the recommended endpoint for writing data and -provides additional options for controlling write behavior. - -If you need to write data using InfluxDB v1.x or v2.x tools, use the compatibility API endpoints. -Compatibility APIs work with [Telegraf](/telegraf/v1/), InfluxDB v2.x and v1.x [API client libraries](/influxdb3/version/reference/client-libraries), and other tools that support the v1.x or v2.x APIs. - -{{% tabs-wrapper %}} -{{% tabs %}} -[/api/v3/write_lp](#) -[v2 compatibility](#) -[v1 compatibility](#) -{{% /tabs %}} -{{% tab-content %}} - -{{% product-name %}} adds the `/api/v3/write_lp` endpoint. - -{{}} - -This endpoint accepts the same line protocol syntax as previous versions, -and supports the following parameters: - -- `?accept_partial=`: Accept or reject partial writes (default is `true`). -- `?no_sync=`: Control when writes are acknowledged: - - `no_sync=true`: Acknowledges writes before WAL persistence completes. - - `no_sync=false`: Acknowledges writes after WAL persistence completes (default). -- `?precision=`: Specify the precision of the timestamp. The default is nanosecond precision. -- request body: The line protocol data to write. - -For more information about the parameters, see [Write data](/influxdb3/version/write-data/). - -##### Example: write data using the /api/v3 HTTP API - -The following examples show how to write data using `curl` and the `/api/3/write_lp` HTTP endpoint. -To show the difference between accepting and rejecting partial writes, line `2` in the example contains a `string` value (`"hi"`) for a `float` field (`temp`). - -###### Partial write of line protocol occurred - -With `accept_partial=true` (default): - -```bash -curl -v "http://{{< influxdb/host >}}/api/v3/write_lp?db=sensors&precision=auto" \ - --header 'Authorization: Bearer apiv3_0xxx0o0XxXxx00Xxxx000xXXxoo0==' \ - --data-raw 'home,room=Sunroom temp=96 -home,room=Sunroom temp="hi"' -``` - -The response is the following: - -``` -< HTTP/1.1 400 Bad Request -... -{ - "error": "partial write of line protocol occurred", - "data": [ - { - "original_line": "home,room=Sunroom temp=hi", - "line_number": 2, - "error_message": "invalid column type for column 'temp', expected iox::column_type::field::float, got iox::column_type::field::string" - } - ] -} -``` - -Line `1` is written and queryable. -The response is an HTTP error (`400`) status, and the response body contains the error message `partial write of line protocol occurred` with details about the problem line. - -###### Parsing failed for write_lp endpoint - -With `accept_partial=false`: - -```bash -curl -v "http://{{< influxdb/host >}}/api/v3/write_lp?db=sensors&precision=auto&accept_partial=false" \ - --header 'Authorization: Bearer apiv3_0xxx0o0XxXxx00Xxxx000xXXxoo0==' \ - --data-raw 'home,room=Sunroom temp=96 -home,room=Sunroom temp="hi"' -``` - -The response is the following: - -``` -< HTTP/1.1 400 Bad Request -... -{ - "error": "parsing failed for write_lp endpoint", - "data": { - "original_line": "home,room=Sunroom temp=hi", - "line_number": 2, - "error_message": "invalid column type for column 'temp', expected iox::column_type::field::float, got iox::column_type::field::string" - } -} -``` - -InfluxDB rejects all points in the batch. -The response is an HTTP error (`400`) status, and the response body contains `parsing failed for write_lp endpoint` and details about the problem line. - -For more information about the ingest path and data flow, see [Data durability](/influxdb3/version/reference/internals/durability/). - -{{% /tab-content %}} -{{% tab-content %}} - -The `/api/v2/write` InfluxDB v2 compatibility endpoint provides backwards compatibility with clients (such as [Telegraf's InfluxDB v2 output plugin](/telegraf/v1/plugins/#output-influxdb_v2) and [InfluxDB v2 API client libraries](/influxdb3/version/reference/client-libraries/v2/)) that can write data to InfluxDB OSS v2.x and Cloud 2 (TSM). - -{{}} - -{{% /tab-content %}} - -{{% tab-content %}} - -The `/write` InfluxDB v1 compatibility endpoint provides backwards compatibility for clients that can write data to InfluxDB v1.x. - -{{}} - - -{{% /tab-content %}} -{{% /tabs-wrapper %}} - -> [!Note] -> #### Compatibility APIs differ from native APIs -> -> Keep in mind that the compatibility APIs differ from the v1 and v2 APIs in previous versions in the following ways: -> -> - Tags in a table (measurement) are _immutable_ -> - A tag and a field can't have the same name within a table. - -#### Write responses - -By default, InfluxDB acknowledges writes after flushing the WAL file to the object store (occurring every second). -For high write throughput, you can send multiple concurrent write requests. - -#### Use no_sync for immediate write responses - -To reduce the latency of writes, use the `no_sync` write option, which acknowledges writes _before_ WAL persistence completes. -When `no_sync=true`, InfluxDB validates the data, writes the data to the WAL, and then immediately responds to the client, without waiting for persistence to the object store. - -Using `no_sync=true` is best when prioritizing high-throughput writes over absolute durability. - -- Default behavior (`no_sync=false`): Waits for data to be written to the object store before acknowledging the write. Reduces the risk of data loss, but increases the latency of the response. -- With `no_sync=true`: Reduces write latency, but increases the risk of data loss in case of a crash before WAL persistence. - -##### Immediate write using the HTTP API - -The `no_sync` parameter controls when writes are acknowledged--for example: - -```bash -curl "http://{{< influxdb/host >}}/api/v3/write_lp?db=sensors&precision=auto&no_sync=true" \ - --header 'Authorization: Bearer apiv3_0xxx0o0XxXxx00Xxxx000xXXxoo0==' \ - --data-raw "home,room=Sunroom temp=96" -``` - -### Create a database or table - -To create a database without writing data, use the `create` subcommand--for example: - -{{% code-placeholders "DATABASE_NAME|AUTH_TOKEN" %}} -```bash -influxdb3 create database DATABASE_NAME \ - --token AUTH_TOKEN -``` -{{% /code-placeholders %}} - -Replace the following placeholders with your values: - -- {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}: the name of the database to create -- {{% code-placeholder-key %}}`AUTH_TOKEN`{{% /code-placeholder-key %}}: the {{% token-link "admin" %}} for your {{% product-name %}} server - -To learn more about a subcommand, use the `-h, --help` flag or view the [InfluxDB 3 CLI reference](/influxdb3/version/reference/cli/create/): - -```bash -influxdb3 create -h -``` - -### Query data - -InfluxDB 3 supports native SQL for querying, in addition to InfluxQL, an -SQL-like language customized for time series queries. - -{{< product-name >}} limits -query time ranges to 72 hours (both recent and historical) to ensure query performance. -For more information about the 72-hour limitation, see the -[update on InfluxDB 3 Core’s 72-hour limitation](https://www.influxdata.com/blog/influxdb3-open-source-public-alpha-jan-27/). - -> [!Note] -> Flux, the language introduced in InfluxDB 2.0, is **not** supported in InfluxDB 3. - -The quickest way to get started querying is to use the `influxdb3` CLI (which uses the Flight SQL API over HTTP2). - -The `query` subcommand includes options to help ensure that the right database is queried with the correct permissions. Only the `--database` option is required, but depending on your specific setup, you may need to pass other options, such as host, port, and token. - -| Option | Description | Required | -|---------|-------------|--------------| -| `--host` | The host URL of the server [default: `http://127.0.0.1:8181`] to query | No | -| `--database` | The name of the database to operate on | Yes | -| `--token` | The authentication token for the {{% product-name %}} server | No | -| `--language` | The query language of the provided query string [default: `sql`] [possible values: `sql`, `influxql`] | No | -| `--format` | The format in which to output the query [default: `pretty`] [possible values: `pretty`, `json`, `jsonl`, `csv`, `parquet`] | No | -| `--output` | The path to output data to | No | - -#### Example: query `“SHOW TABLES”` on the `servers` database: - -```console -$ influxdb3 query --database servers "SHOW TABLES" -+---------------+--------------------+--------------+------------+ -| table_catalog | table_schema | table_name | table_type | -+---------------+--------------------+--------------+------------+ -| public | iox | cpu | BASE TABLE | -| public | information_schema | tables | VIEW | -| public | information_schema | views | VIEW | -| public | information_schema | columns | VIEW | -| public | information_schema | df_settings | VIEW | -| public | information_schema | schemata | VIEW | -+---------------+--------------------+--------------+------------+ -``` - -#### Example: query the `cpu` table, limiting to 10 rows: - -```console -$ influxdb3 query --database servers "SELECT DISTINCT usage_percent, time FROM cpu LIMIT 10" -+---------------+---------------------+ -| usage_percent | time | -+---------------+---------------------+ -| 63.4 | 2024-02-21T19:25:00 | -| 25.3 | 2024-02-21T19:06:40 | -| 26.5 | 2024-02-21T19:31:40 | -| 70.1 | 2024-02-21T19:03:20 | -| 83.7 | 2024-02-21T19:30:00 | -| 55.2 | 2024-02-21T19:00:00 | -| 80.5 | 2024-02-21T19:05:00 | -| 60.2 | 2024-02-21T19:33:20 | -| 20.5 | 2024-02-21T18:58:20 | -| 85.2 | 2024-02-21T19:28:20 | -+---------------+---------------------+ -``` - -### Query using the CLI for InfluxQL - -[InfluxQL](/influxdb3/version/reference/influxql/) is an SQL-like language developed by InfluxData with specific features tailored for leveraging and working with InfluxDB. It’s compatible with all versions of InfluxDB, making it a good choice for interoperability across different InfluxDB installations. - -To query using InfluxQL, enter the `influxdb3 query` subcommand and specify `influxql` in the language option--for example: - -{{% code-placeholders "DATABASE_NAME|AUTH_TOKEN" %}} -```bash -influxdb3 query \ - --database DATABASE_NAME \ - --token \ - --language influxql \ - "SELECT DISTINCT usage_percent FROM cpu WHERE time >= now() - 1d" -``` -{{% /code-placeholders %}} - -Replace the following placeholders with your values: - -- {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}: the name of the database to query -- {{% code-placeholder-key %}}`AUTH_TOKEN`{{% /code-placeholder-key %}}: your {{% token-link "database" %}}{{% show-in "enterprise" %}} with permission to query the specified database{{% /show-in %}} - -### Query using the API - -InfluxDB 3 supports Flight (gRPC) APIs and an HTTP API. -To query your database using the HTTP API, send a request to the `/api/v3/query_sql` or `/api/v3/query_influxql` endpoints. -In the request, specify the database name in the `db` parameter -and a query in the `q` parameter. -You can pass parameters in the query string or inside a JSON object. - -Use the `format` parameter to specify the response format: `pretty`, `jsonl`, `parquet`, `csv`, and `json`. Default is `json`. - -##### Example: Query passing URL-encoded parameters - -The following example sends an HTTP `GET` request with a URL-encoded SQL query: - -{{% code-placeholders "DATABASE_NAME|AUTH_TOKEN" %}} -```bash -curl -G "http://{{< influxdb/host >}}/api/v3/query_sql" \ - --header 'Authorization: Bearer AUTH_TOKEN' \ - --data-urlencode "db=DATABASE_NAME" \ - --data-urlencode "q=select * from cpu limit 5" -``` -{{% /code-placeholders %}} - -Replace the following placeholders with your values: - -- {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}: the name of the database to query -- {{% code-placeholder-key %}}`AUTH_TOKEN`{{% /code-placeholder-key %}}: your {{% token-link "database" %}}{{% show-in "enterprise" %}} with permission to query the specified database{{% /show-in %}} - -##### Example: Query passing JSON parameters - -The following example sends an HTTP `POST` request with parameters in a JSON payload: - -{{% code-placeholders "DATABASE_NAME|AUTH_TOKEN" %}} -```bash -curl http://{{< influxdb/host >}}/api/v3/query_sql \ - --data '{"db": "DATABASE_NAME", "q": "select * from cpu limit 5"}' -``` -{{% /code-placeholders %}} - -Replace the following placeholders with your values: - -- {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}: the name of the database to query -- {{% code-placeholder-key %}}`AUTH_TOKEN`{{% /code-placeholder-key %}}: your {{% token-link "database" %}}{{% show-in "enterprise" %}} with permission to query the specified database{{% /show-in %}} - -### Query using the Python client - -Use the InfluxDB 3 Python library to interact with the database and integrate with your application. -We recommend installing the required packages in a Python virtual environment for your specific project. - -To get started, install the `influxdb3-python` package. - -```bash -pip install influxdb3-python -``` - -From here, you can connect to your database with the client library using just the **host** and **database name: - -{{% code-placeholders "DATABASE_NAME|AUTH_TOKEN" %}} -```python -from influxdb_client_3 import InfluxDBClient3 - -client = InfluxDBClient3( - token='AUTH_TOKEN', - host='http://{{< influxdb/host >}}', - database='DATABASE_NAME' -) -``` -{{% /code-placeholders %}} - -Replace the following placeholders with your values: - -- {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}: the name of the database to query -- {{% code-placeholder-key %}}`AUTH_TOKEN`{{% /code-placeholder-key %}}: your {{% token-link "database" %}}{{% show-in "enterprise" %}} with permission to query the specified database{{% /show-in %}} - -The following example shows how to query using SQL, and then -use PyArrow to explore the schema and process results. -To authorize the query, the example retrieves the {{% token-link "database" %}} -from the `INFLUXDB3_AUTH_TOKEN` environment variable. - -```python -from influxdb_client_3 import InfluxDBClient3 -import os - -client = InfluxDBClient3( - token=os.environ.get('INFLUXDB3_AUTH_TOKEN'), - host='http://{{< influxdb/host >}}', - database='servers' -) - -# Execute the query and return an Arrow table -table = client.query( - query="SELECT * FROM cpu LIMIT 10", - language="sql" -) - -print("\n#### View Schema information\n") -print(table.schema) - -print("\n#### Use PyArrow to read the specified columns\n") -print(table.column('usage_active')) -print(table.select(['host', 'usage_active'])) -print(table.select(['time', 'host', 'usage_active'])) - -print("\n#### Use PyArrow compute functions to aggregate data\n") -print(table.group_by('host').aggregate([])) -print(table.group_by('cpu').aggregate([('time_system', 'mean')])) -``` - -For more information about the Python client library, see the [`influxdb3-python` repository](https://github.com/InfluxCommunity/influxdb3-python) in GitHub. - - -### Query using InfluxDB 3 Explorer (Beta) - -You can use the InfluxDB 3 Explorer query interface by downloading the Docker image. - -```bash -docker pull quay.io/influxdb/influxdb3-explorer:latest -``` - -Run the interface using: - -```bash -docker run --name influxdb3-explorer -p 8086:8888 quay.io/influxdb/influxdb3-explorer:latest -``` - -With the default settings above, you can access the UI at http://localhost:8086. -Set your expected database connection details on the Settings page. -From there, you can query data, browser your database schema, and do basic -visualization of your time series data. - -### Last values cache - -{{% product-name %}} supports a **last-n values cache** which stores the last N values in a series or column hierarchy in memory. This gives the database the ability to answer these kinds of queries in under 10 milliseconds. -You can use the `influxdb3` CLI to [create a last value cache](/influxdb3/version/reference/cli/influxdb3/create/last_cache/). - -{{% code-placeholders "DATABASE_NAME|AUTH_TOKEN|TABLE_NAME|CACHE_NAME" %}} -```bash -influxdb3 create last_cache \ - --token AUTH_TOKEN - --database DATABASE_NAME \ - --table TABLE_NAME \ - CACHE_NAME -``` -{{% /code-placeholders %}} - -Replace the following placeholders with your values: - -- {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}: the name of the database to create the last values cache in -- {{% code-placeholder-key %}}`AUTH_TOKEN`{{% /code-placeholder-key %}}: your {{% token-link "admin" %}} -- {{% code-placeholder-key %}}`TABLE_NAME`{{% /code-placeholder-key %}}: the name of the table to create the last values cache in -- {{% code-placeholder-key %}}`CACHE_NAME`{{% /code-placeholder-key %}}: Optionally, a name for the new cache - -Consider the following `cpu` sample table: - -| host | application | time | usage\_percent | status | -| ----- | ----- | ----- | ----- | ----- | -| Bravo | database | 2024-12-11T10:00:00 | 55.2 | OK | -| Charlie | cache | 2024-12-11T10:00:00 | 65.4 | OK | -| Bravo | database | 2024-12-11T10:01:00 | 70.1 | Warn | -| Bravo | database | 2024-12-11T10:01:00 | 80.5 | OK | -| Alpha | webserver | 2024-12-11T10:02:00 | 25.3 | Warn | - -The following command creates a last value cache named `cpuCache`: - -```bash -influxdb3 create last_cache \ - --token apiv3_0xxx0o0XxXxx00Xxxx000xXXxoo0== \ - --database servers \ - --table cpu \ - --key-columns host,application \ - --value-columns usage_percent,status \ - --count 5 cpuCache -``` - -_You can create a last values cache per time series, but be mindful of high cardinality tables that could take excessive memory._ - -#### Query a last values cache - -To query data from the LVC, use the [`last_cache()`](influxdb3/version/reference/sql/functions/cache/#last_cache) function in your query--for example: - -```bash -influxdb3 query \ - --token apiv3_0xxx0o0XxXxx00Xxxx000xXXxoo0== \ - --database servers \ - "SELECT * FROM last_cache('cpu', 'cpuCache') WHERE host = 'Bravo';" -``` - -> [!Note] -> #### Only works with SQL -> -> The last values cache only works with SQL, not InfluxQL; SQL is the default language. - -#### Delete a last values cache - -Use the `influxdb3` CLI to [delete a last values cache](/influxdb3/version/reference/cli/influxdb3/delete/last_cache/) - -{{% code-placeholders "DATABASE_NAME|TABLE_NAME|CACHE_NAME" %}} -```bash -influxdb3 delete last_cache \ - --token AUTH_TOKEN \ - --database DATABASE_NAME \ - --table TABLE \ - --cache-name CACHE_NAME -``` -{{% /code-placeholders %}} - -Replace the following placeholders with your values: - -- {{% code-placeholder-key %}}`AUTH_TOKEN`{{% /code-placeholder-key %}}: your {{% token-link "admin" %}} -- {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}: the name of the database to delete the last values cache from -- {{% code-placeholder-key %}}`TABLE_NAME`{{% /code-placeholder-key %}}: the name of the table to delete the last values cache from -- {{% code-placeholder-key %}}`CACHE_NAME`{{% /code-placeholder-key %}}: the name of the last values cache to delete - -### Distinct values cache - -Similar to the [last values cache](#last-values-cache), the database can cache in RAM the distinct values for a single column in a table or a hierarchy of columns. -This is useful for fast metadata lookups, which can return in under 30 milliseconds. -Many of the options are similar to the last value cache. - -You can use the `influxdb3` CLI to [create a distinct values cache](/influxdb3/version/reference/cli/influxdb3/create/distinct_cache/). - -{{% code-placeholders "DATABASE_NAME|AUTH_TOKEN|TABLE_NAME|CACHE_NAME" %}} -```bash -influxdb3 create distinct_cache \ - --token AUTH_TOKEN \ - --database DATABASE_NAME \ - --table TABLE \ - --columns COLUMNS \ - CACHE_NAME -``` -{{% /code-placeholders %}} -Replace the following placeholders with your values: - -- {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}: the name of the database to create the last values cache in -- {{% code-placeholder-key %}}`AUTH_TOKEN`{{% /code-placeholder-key %}}: your {{% token-link "admin" %}} -- {{% code-placeholder-key %}}`TABLE_NAME`{{% /code-placeholder-key %}}: the name of the table to create the distinct values cache in -- {{% code-placeholder-key %}}`CACHE_NAME`{{% /code-placeholder-key %}}: Optionally, a name for the new cache - -Consider the following `cpu` sample table: - -| host | application | time | usage\_percent | status | -| ----- | ----- | ----- | ----- | ----- | -| Bravo | database | 2024-12-11T10:00:00 | 55.2 | OK | -| Charlie | cache | 2024-12-11T10:00:00 | 65.4 | OK | -| Bravo | database | 2024-12-11T10:01:00 | 70.1 | Warn | -| Bravo | database | 2024-12-11T10:01:00 | 80.5 | OK | -| Alpha | webserver | 2024-12-11T10:02:00 | 25.3 | Warn | - -The following command creates a distinct values cache named `cpuDistinctCache`: - -```bash -influxdb3 create distinct_cache \ - --token apiv3_0xxx0o0XxXxx00Xxxx000xXXxoo0== \ - --database servers \ - --table cpu \ - --columns host,application \ - cpuDistinctCache -``` - -#### Query a distinct values cache - -To query data from the distinct values cache, use the [`distinct_cache()`](/influxdb3/version/reference/sql/functions/cache/#distinct_cache) function in your query--for example: - -```bash -influxdb3 query \ - --token apiv3_0xxx0o0XxXxx00Xxxx000xXXxoo0== \ - --database servers \ - "SELECT * FROM distinct_cache('cpu', 'cpuDistinctCache')" -``` - -> [!Note] -> #### Only works with SQL -> -> The distinct cache only works with SQL, not InfluxQL; SQL is the default language. - -#### Delete a distinct values cache - -Use the `influxdb3` CLI to [delete a distinct values cache](/influxdb3/version/reference/cli/influxdb3/delete/distinct_cache/) - -{{% code-placeholders "DATABASE_NAME|TABLE_NAME|CACHE_NAME" %}} -```bash -influxdb3 delete distinct_cache \ - --token AUTH_TOKEN \ - --database DATABASE_NAME \ - --table TABLE \ - --cache-name CACHE_NAME -``` -{{% /code-placeholders %}} - -Replace the following placeholders with your values: -- {{% code-placeholder-key %}}`AUTH_TOKEN`{{% /code-placeholder-key %}}: your {{% token-link "admin" %}} -- {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}: the name of the database to delete the distinct values cache from -- {{% code-placeholder-key %}}`TABLE_NAME`{{% /code-placeholder-key %}}: the name of the table to delete the distinct values cache from -- {{% code-placeholder-key %}}`CACHE_NAME`{{% /code-placeholder-key %}}: the name of the distinct values cache to delete - -### Python plugins and the processing engine - -The InfluxDB 3 processing engine is an embedded Python VM for running code inside the database to process and transform data. - -To activate the processing engine, pass the `--plugin-dir ` option when starting the {{% product-name %}} server. -`PLUGIN_DIR` is your filesystem location for storing [plugin](#plugin) files for the processing engine to run. - -#### Plugin - -A plugin is a Python function that has a signature compatible with a Processing engine [trigger](#trigger). - -#### Trigger - -When you create a trigger, you specify a [plugin](#plugin), a database, optional arguments, -and a _trigger-spec_, which defines when the plugin is executed and what data it receives. - -##### Trigger types - -InfluxDB 3 provides the following types of triggers, each with specific trigger-specs: - -- **On WAL flush**: Sends a batch of written data (for a specific table or all tables) to a plugin (by default, every second). -- **On Schedule**: Executes a plugin on a user-configured schedule (using a crontab or a duration); useful for data collection and deadman monitoring. -- **On Request**: Binds a plugin to a custom HTTP API endpoint at `/api/v3/engine/`. - The plugin receives the HTTP request headers and content, and can then parse, process, and send the data into the database or to third-party services. - -### Test, create, and trigger plugin code - -##### Example: Python plugin for WAL rows - -```python -# This is the basic structure for Python plugin code that runs in the -# InfluxDB 3 Processing engine. - -# When creating a trigger, you can provide runtime arguments to your plugin, -# allowing you to write generic code that uses variables such as monitoring -thresholds, environment variables, and host names. -# -# Use the following exact signature to define a function for the WAL flush -# trigger. -# When you create a trigger for a WAL flush plugin, you specify the database -# and tables that the plugin receives written data from on every WAL flush -# (default is once per second). -def process_writes(influxdb3_local, table_batches, args=None): - # here you can see logging. for now this won't do anything, but soon - # we'll capture this so you can query it from system tables - if args and "arg1" in args: - influxdb3_local.info("arg1: " + args["arg1"]) - - # here we're using arguments provided at the time the trigger was set up - # to feed into paramters that we'll put into a query - query_params = {"host": "foo"} - # here's an example of executing a parameterized query. Only SQL is supported. - # It will query the database that the trigger is attached to by default. We'll - # soon have support for querying other DBs. - query_result = influxdb3_local.query("SELECT * FROM cpu where host = '$host'", query_params) - # the result is a list of Dict that have the column name as key and value as - # value. If you run the WAL test plugin with your plugin against a DB that - # you've written data into, you'll be able to see some results - influxdb3_local.info("query result: " + str(query_result)) - - # this is the data that is sent when the WAL is flushed of writes the server - # received for the DB or table of interest. One batch for each table (will - # only be one if triggered on a single table) - for table_batch in table_batches: - # here you can see that the table_name is available. - influxdb3_local.info("table: " + table_batch["table_name"]) - - # example to skip the table we're later writing data into - if table_batch["table_name"] == "some_table": - continue - - # and then the individual rows, which are Dict with keys of the column names and values - for row in table_batch["rows"]: - influxdb3_local.info("row: " + str(row)) - - # this shows building a line of LP to write back to the database. tags must go first and - # their order is important and must always be the same for each individual table. Then - # fields and lastly an optional time, which you can see in the next example below - line = LineBuilder("some_table")\ - .tag("tag1", "tag1_value")\ - .tag("tag2", "tag2_value")\ - .int64_field("field1", 1)\ - .float64_field("field2", 2.0)\ - .string_field("field3", "number three") - - # this writes it back (it actually just buffers it until the completion of this function - # at which point it will write everything back that you put in) - influxdb3_local.write(line) - - # here's another example, but with us setting a nanosecond timestamp at the end - other_line = LineBuilder("other_table") - other_line.int64_field("other_field", 1) - other_line.float64_field("other_field2", 3.14) - other_line.time_ns(1302) - - # and you can see that we can write to any DB in the server - influxdb3_local.write_to_db("mytestdb", other_line) - - # just some log output as an example - influxdb3_local.info("done") -``` - -##### Test a plugin on the server - -Test your InfluxDB 3 plugin safely without affecting written data. During a plugin test: - -- A query executed by the plugin queries against the server you send the request to. -- Writes aren't sent to the server but are returned to you. - -To test a plugin, do the following: - -1. Create a _plugin directory_--for example, `/path/to/.influxdb/plugins` -2. [Start the InfluxDB server](#start-influxdb) and include the `--plugin-dir ` option. -3. Save the [example plugin code](#example-python-plugin-for-wal-flush) to a plugin file inside of the plugin directory. If you haven't yet written data to the table in the example, comment out the lines where it queries. -4. To run the test, enter the following command with the following options: - - - `--lp` or `--file`: The line protocol to test - - Optional: `--input-arguments`: A comma-delimited list of `=` arguments for your plugin code - -{{% code-placeholders "INPUT_LINE_PROTOCOL|INPUT_ARGS|DATABASE_NAME|AUTH_TOKEN|PLUGIN_FILENAME" %}} -```bash -influxdb3 test wal_plugin \ ---lp INPUT_LINE_PROTOCOL \ ---input-arguments INPUT_ARGS \ ---database DATABASE_NAME \ ---token AUTH_TOKEN \ -PLUGIN_FILENAME -``` -{{% /code-placeholders %}} - -Replace the following placeholders with your values: - -- {{% code-placeholder-key %}}`INPUT_LINE_PROTOCOL`{{% /code-placeholder-key %}}: the line protocol to test -- Optional: {{% code-placeholder-key %}}`INPUT_ARGS`{{% /code-placeholder-key %}}: a comma-delimited list of `=` arguments for your plugin code--for example, `arg1=hello,arg2=world` -- {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}: the name of the database to test against -- {{% code-placeholder-key %}}`AUTH_TOKEN`{{% /code-placeholder-key %}}: the {{% token-link "admin" %}} for your {{% product-name %}} server -- {{% code-placeholder-key %}}`PLUGIN_FILENAME`{{% /code-placeholder-key %}}: the name of the plugin file to test - -The command runs the plugin code with the test data, yields the data to the plugin code, and then responds with the plugin result. -You can quickly see how the plugin behaves, what data it would have written to the database, and any errors. -You can then edit your Python code in the plugins directory, and rerun the test. -The server reloads the file for every request to the `test` API. - -For more information, see [`influxdb3 test wal_plugin`](/influxdb3/version/reference/cli/influxdb3/test/wal_plugin/) or run `influxdb3 test wal_plugin -h`. - -With the plugin code inside the server plugin directory, and a successful test, -you're ready to create a plugin and a trigger to run on the server. - -##### Example: Test, create, and run a plugin - -The following example shows how to test a plugin, and then create the plugin and -trigger: - -```bash -# Test and create a plugin -# Requires: -# - A database named `mydb` with a table named `foo` -# - A Python plugin file named `test.py` -# Test a plugin -influxdb3 test wal_plugin \ - --lp "my_measure,tag1=asdf f1=1.0 123" \ - --token apiv3_0xxx0o0XxXxx00Xxxx000xXXxoo0== \ - --database sensors \ - --input-arguments "arg1=hello,arg2=world" \ - test.py -``` - -```bash -# Create a trigger that runs the plugin -influxdb3 create trigger \ - --token apiv3_0xxx0o0XxXxx00Xxxx000xXXxoo0== \ - --database sensors \ - --plugin test_plugin \ - --trigger-spec "table:foo" \ - --trigger-arguments "arg1=hello,arg2=world" \ - trigger1 -``` - -After you have created a plugin and trigger, enter the following command to -enable the trigger and have it run the plugin as you write data: - -{{% code-placeholders "DATABASE_NAME|AUTH_TOKEN|TRIGGER_NAME" %}} -```bash -influxdb3 enable trigger \ - --token AUTH_TOKEN \ - --database DATABASE_NAME \ - TRIGGER_NAME -``` -{{% /code-placeholders %}} - -Replace the following placeholders with your values: - -- {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}: the name of the database to enable the trigger in -- {{% code-placeholder-key %}}`AUTH_TOKEN`{{% /code-placeholder-key %}}: your {{% token-link "admin" %}} -- {{% code-placeholder-key %}}`TRIGGER_NAME`{{% /code-placeholder-key %}}: the name of the trigger to enable - -For example, to enable the trigger named `trigger1` in the `sensors` database: - -```bash -influxdb3 enable trigger \ - --token apiv3_0xxx0o0XxXxx00Xxxx000xXXxoo0== \ - --database sensors - trigger1 -``` - -For more information, see [Python plugins and the Processing engine](/influxdb3/version/plugins/). diff --git a/content/shared/v3-core-plugins/_index.md b/content/shared/v3-core-plugins/_index.md index 0b5d748f9..4e4c1a762 100644 --- a/content/shared/v3-core-plugins/_index.md +++ b/content/shared/v3-core-plugins/_index.md @@ -168,11 +168,11 @@ Before you begin, make sure: Choose a plugin type based on your automation goals: -| Plugin Type | Best For | Trigger Type | -|-------------|----------|-------------| -| **Data write** | Processing data as it arrives | `table:` or `all_tables` | -| **Scheduled** | Running code at specific times | `every:` or `cron:` | -| **HTTP request** | Creating API endpoints | `path:` | +| Plugin Type | Best For | Trigger Type | +| ---------------- | ------------------------------------------- | ------------------------ | +| **Data write** | Processing data as it arrives | `table:` or `all_tables` | +| **Scheduled** | Running code at specific intervals or times | `every:` or `cron:` | +| **HTTP request** | Running code on demand via API endpoints | `path:` | #### Create your plugin file @@ -336,8 +336,9 @@ influxdb3 create trigger \ regular_check # Run on a cron schedule (8am daily) +# Supports extended cron format with seconds influxdb3 create trigger \ - --trigger-spec "cron:0 8 * * *" \ + --trigger-spec "cron:0 0 8 * * *" \ --plugin-filename "daily_report.py" \ --database my_database \ daily_report @@ -522,27 +523,90 @@ influxdb3 create trigger \ ### Install Python dependencies -If your plugin needs additional Python packages, use the `influxdb3 install` command: +Use the `influxdb3 install package` command to add third-party libraries (like `pandas`, `requests`, or `influxdb3-python`) to your plugin environment. +This installs packages into the Processing Engine’s embedded Python environment to ensure compatibility with your InfluxDB instance. + +{{% code-placeholders "CONTAINER_NAME|PACKAGE_NAME" %}} + +{{< code-tabs-wrapper >}} + +{{% code-tabs %}} +[CLI](#) +[Docker](#) +{{% /code-tabs %}} + +{{% code-tab-content %}} ```bash -# Install a package directly +# Use the CLI to install a Python package influxdb3 install package pandas + ``` +{{% /code-tab-content %}} + +{{% code-tab-content %}} + ```bash -# With Docker +# Use the CLI to install a Python package in a Docker container docker exec -it CONTAINER_NAME influxdb3 install package pandas ``` -This creates a Python virtual environment in your plugins directory with the specified packages installed. +{{% /code-tab-content %}} + +{{< /code-tabs-wrapper >}} + +These examples install the specified Python package (for example, pandas) into the Processing Engine’s embedded virtual environment. + +- Use the CLI command when running InfluxDB directly on your system. +- Use the Docker variant if you're running InfluxDB in a containerized environment. + +> [!Important] +> #### Use bundled Python for plugins +> When you start the server with the `--plugin-dir` option, InfluxDB 3 creates a Python virtual environment (`/venv`) for your plugins. +> If you need to create a custom virtual environment, use the Python interpreter bundled with InfluxDB 3. Don't use the system Python. +> Creating a virtual environment with the system Python (for example, using `python -m venv`) can lead to runtime errors and plugin failures. +> +>For more information, see the [processing engine README](https://github.com/influxdata/influxdb/blob/main/README_processing_engine.md#official-builds). + +{{% /code-placeholders %}} + +InfluxDB creates a Python virtual environment in your plugins directory with the specified packages installed. {{% show-in "enterprise" %}} -### Connect Grafana to your InfluxDB instance +## Distributed cluster considerations -When configuring Grafana to connect to an InfluxDB 3 Enterprise instance: +When you deploy {{% product-name %}} in a multi-node environment, configure each node based on its role and the plugins it runs. -- **URL**: Use a querier URL or any node that serves queries +### Match plugin types to the correct node + +Each plugin must run on a node that supports its trigger type: + +| Plugin type | Trigger spec | Runs on | +|--------------------|--------------------------|-----------------------------| +| Data write | `table:` or `all_tables` | Ingester nodes | +| Scheduled | `every:` or `cron:` | Any node with scheduler | +| HTTP request | `path:` | Nodes that serve API traffic| + +For example: +- Run write-ahead log (WAL) plugins on ingester nodes. +- Run scheduled plugins on any node configured to execute them. +- Run HTTP-triggered plugins on querier nodes or any node that handles HTTP endpoints. + +Place all plugin files in the `--plugin-dir` directory configured for each node. + +> [!Note] +> Triggers fail if the plugin file isn’t available on the node where it runs. + +### Route third-party clients to querier nodes + +External tools—such as Grafana, custom dashboards, or REST clients—must connect to querier nodes in your InfluxDB Enterprise deployment. + +#### Examples + +- **Grafana**: When adding InfluxDB 3 as a Grafana data source, use a querier node URL, such as: +`https://querier.example.com:8086` +- **REST clients**: Applications using `POST /api/v3/query/sql` or similar endpoints must target a querier node. -Example URL format: `https://querier.your-influxdb.com:8086` {{% /show-in %}} diff --git a/content/telegraf/v1/release-notes.md b/content/telegraf/v1/release-notes.md index 44925f7e0..a5cd55648 100644 --- a/content/telegraf/v1/release-notes.md +++ b/content/telegraf/v1/release-notes.md @@ -11,7 +11,7 @@ menu: weight: 60 --- -## v1.34.1 [2025-03-24] +## v1.34.1 {date="2025-03-24"} ### Bugfixes @@ -40,7 +40,7 @@ menu: - [#16653](https://github.com/influxdata/telegraf/pull/16653) `deps` Bump k8s.io/api from 0.32.1 to 0.32.3 - [#16659](https://github.com/influxdata/telegraf/pull/16659) `deps` Bump tj-actions/changed-files from v45 to v46.0.1 -## v1.34.0 [2025-03-10] +## v1.34.0 {date="2025-03-10"} ### New Plugins @@ -94,7 +94,7 @@ menu: - [#16575](https://github.com/influxdata/telegraf/pull/16575) `deps` Bump github.com/tidwall/wal from 1.1.7 to 1.1.8 - [#16578](https://github.com/influxdata/telegraf/pull/16578) `deps` Bump super-linter/super-linter from 7.2.1 to 7.3.0 -## v1.33.3 [2025-02-25] +## v1.33.3 {date="2025-02-25"} ### Important Changes @@ -128,7 +128,7 @@ menu: - [#16504](https://github.com/influxdata/telegraf/pull/16504) `deps` Bump golang.org/x/net from 0.34.0 to 0.35.0 - [#16512](https://github.com/influxdata/telegraf/pull/16512) `deps` Bump golangci-lint from v1.63.4 to v1.64.5 -## v1.33.2 [2025-02-10] +## v1.33.2 {date="2025-02-10"} ### Important Changes @@ -177,7 +177,7 @@ menu: - [#16482](https://github.com/influxdata/telegraf/pull/16482) `deps` Update Apache arrow from 0.0-20240716144821-cf5d7c7ec3cf to 18.1.0 - [#16423](https://github.com/influxdata/telegraf/pull/16423) `deps` Update ClickHouse SQL driver from 1.5.4 to to 2.30.1 -## v1.33.1 [2025-01-10] +## v1.33.1 {date="2025-01-10"} ### Important Changes diff --git a/cypress/downloads/downloads.html b/cypress/downloads/downloads.html new file mode 100644 index 000000000..523cdaa3e Binary files /dev/null and b/cypress/downloads/downloads.html differ diff --git a/cypress/support/hugo-server.js b/cypress/support/hugo-server.js index 0e4e6a646..d4e4c7361 100644 --- a/cypress/support/hugo-server.js +++ b/cypress/support/hugo-server.js @@ -2,8 +2,10 @@ import { spawn } from 'child_process'; import fs from 'fs'; import http from 'http'; import net from 'net'; +import process from 'process'; // Hugo server constants +export const HUGO_ENVIRONMENT = 'testing'; export const HUGO_PORT = 1315; export const HUGO_LOG_FILE = '/tmp/hugo_server.log'; @@ -28,7 +30,8 @@ export async function isPortInUse(port) { /** * Start the Hugo server with the specified options * @param {Object} options - Configuration options for Hugo - * @param {string} options.configFile - Path to Hugo config file (e.g., 'config/testing/config.yml') + * @param {string} options.configFile - Path to Hugo config file + * @param {string} options.environment - Environment to run Hugo in * @param {number} options.port - Port number for Hugo server * @param {boolean} options.buildDrafts - Whether to build draft content * @param {boolean} options.noHTTPCache - Whether to disable HTTP caching @@ -36,9 +39,10 @@ export async function isPortInUse(port) { * @returns {Promise} Child process object */ export async function startHugoServer({ - configFile = 'config/testing/config.yml', + configFile = 'config/_default/hugo.yml', port = HUGO_PORT, - buildDrafts = true, + environment = 'testing', + buildDrafts = false, noHTTPCache = true, logFile = HUGO_LOG_FILE, } = {}) { @@ -48,6 +52,8 @@ export async function startHugoServer({ const hugoArgs = [ 'hugo', 'server', + '--environment', + environment, '--config', configFile, '--port', @@ -64,16 +70,16 @@ export async function startHugoServer({ return new Promise((resolve, reject) => { try { - // Use npx to find and execute Hugo, which will work regardless of installation method - console.log(`Running Hugo with npx: npx ${hugoArgs.join(' ')}`); - const hugoProc = spawn('npx', hugoArgs, { + // Use yarn to find and execute Hugo, which will work regardless of installation method + console.log(`Running Hugo with yarn: yarn ${hugoArgs.join(' ')}`); + const hugoProc = spawn('yarn', hugoArgs, { stdio: ['ignore', 'pipe', 'pipe'], shell: true, }); // Check if the process started successfully if (!hugoProc || !hugoProc.pid) { - return reject(new Error('Failed to start Hugo server via npx')); + return reject(new Error('Failed to start Hugo server via yarn')); } // Set up logging diff --git a/cypress/support/run-e2e-specs.js b/cypress/support/run-e2e-specs.js index 9ff3c5f31..fd2a214d1 100644 --- a/cypress/support/run-e2e-specs.js +++ b/cypress/support/run-e2e-specs.js @@ -38,9 +38,10 @@ import fs from 'fs'; import path from 'path'; import cypress from 'cypress'; import net from 'net'; -import matter from 'gray-matter'; +import { Buffer } from 'buffer'; import { displayBrokenLinksReport, initializeReport } from './link-reporter.js'; import { + HUGO_ENVIRONMENT, HUGO_PORT, HUGO_LOG_FILE, startHugoServer, @@ -90,28 +91,6 @@ async function isPortInUse(port) { }); } -/** - * Extract source information from frontmatter - * @param {string} filePath - Path to the markdown file - * @returns {string|null} Source information if present - */ -function getSourceFromFrontmatter(filePath) { - if (!fs.existsSync(filePath)) { - return null; - } - - try { - const fileContent = fs.readFileSync(filePath, 'utf8'); - const { data } = matter(fileContent); - return data.source || null; - } catch (err) { - console.warn( - `Warning: Could not extract frontmatter from ${filePath}: ${err.message}` - ); - return null; - } -} - /** * Ensures a directory exists, creating it if necessary * Also creates an empty file to ensure the directory is not empty @@ -296,7 +275,7 @@ async function main() { }); console.log('Hugo is available on the system'); - } catch (checkErr) { + } catch { console.log( 'Hugo not found on PATH, will use project-local Hugo via yarn' ); @@ -304,9 +283,8 @@ async function main() { // Use the startHugoServer function from hugo-server.js hugoProc = await startHugoServer({ - configFile: 'config/testing/config.yml', + environment: HUGO_ENVIRONMENT, port: HUGO_PORT, - buildDrafts: true, noHTTPCache: true, logFile: HUGO_LOG_FILE, }); @@ -412,7 +390,7 @@ async function main() { `ℹ️ Note: ${testFailureCount} test(s) failed but no broken links were detected in the report.` ); console.warn( - ` This usually indicates test errors unrelated to link validation.` + ' This usually indicates test errors unrelated to link validation.' ); // We should not consider special case domains (those with expected errors) as failures diff --git a/data/influxdb_urls.yml b/data/influxdb_urls.yml index 9b8a34789..66c0fae92 100644 --- a/data/influxdb_urls.yml +++ b/data/influxdb_urls.yml @@ -66,6 +66,23 @@ cloud: - name: East US (Virginia) location: Virginia, USA url: https://eastus-1.azure.cloud2.influxdata.com + +serverless: + product: InfluxDB Cloud + providers: + - name: Amazon Web Services + short_name: AWS + iox: true + regions: + - name: US East (Virginia) + location: Virginia, USA + url: https://us-east-1-1.aws.cloud2.influxdata.com + iox: true + - name: EU Frankfurt + location: Frankfurt, Germany + url: https://eu-central-1-1.aws.cloud2.influxdata.com + iox: true + cloud_dedicated: providers: - name: Default diff --git a/data/products.yml b/data/products.yml index d427e7ffc..a0d613cb8 100644 --- a/data/products.yml +++ b/data/products.yml @@ -6,7 +6,7 @@ influxdb3_core: versions: [core] list_order: 2 latest: core - latest_patch: 3.0.3 + latest_patch: 3.1.0 placeholder_host: localhost:8181 ai_sample_questions: - How do I install and run InfluxDB 3 Core? @@ -21,12 +21,26 @@ influxdb3_enterprise: versions: [enterprise] list_order: 2 latest: enterprise - latest_patch: 3.0.3 + latest_patch: 3.1.0 placeholder_host: localhost:8181 ai_sample_questions: - How do I install and run InfluxDB 3 Enterprise? - Help me write a plugin for the Python Processing engine? - How do I start a read replica node with InfluxDB 3 Enterprise? + +influxdb3_explorer: + name: InfluxDB 3 Explorer + altname: Explorer + namespace: influxdb3_explorer + menu_category: tools + list_order: 1 + latest: explorer + latest_patch: 1.0.0 + placeholder_host: localhost:8888 + ai_sample_questions: + - How do I query data using InfluxDB 3 Explorer? + - How do I use InfluxDB 3 Explorer to visualize data? + - How do I install InfluxDB 3 Explorer? influxdb3_cloud_serverless: name: InfluxDB Cloud Serverless @@ -50,7 +64,7 @@ influxdb3_cloud_dedicated: list_order: 3 latest: cloud-dedicated link: "https://www.influxdata.com/contact-sales-cloud-dedicated/" - latest_cli: 2.10.0 + latest_cli: 2.10.1 placeholder_host: cluster-id.a.influxdb.io ai_sample_questions: - How do I migrate from InfluxDB v1 to InfluxDB Cloud Dedicated? @@ -108,6 +122,20 @@ influxdb_cloud: - How is Cloud 2 different from Cloud Serverless? - How do I manage auth tokens in InfluxDB Cloud 2? +explorer: + name: InfluxDB 3 Explorer + namespace: explorer + menu_category: other + list_order: 4 + versions: [v1] + latest: v1.0 + latest_patches: + v1: 1.0.0 + ai_sample_questions: + - How do I use InfluxDB 3 Explorer to visualize data? + - How do I create a dashboard in InfluxDB 3 Explorer? + - How do I query data using InfluxDB 3 Explorer? + telegraf: name: Telegraf namespace: telegraf @@ -144,7 +172,7 @@ kapacitor: versions: [v1] latest: v1.7 latest_patches: - v1: 1.7.6 + v1: 1.7.7 ai_sample_questions: - How do I configure Kapacitor for InfluxDB v1? - How do I write a custom Kapacitor task? diff --git a/deploy/edge.js b/deploy/edge.js index eeed914c1..668cffa72 100644 --- a/deploy/edge.js +++ b/deploy/edge.js @@ -3,31 +3,32 @@ const path = require('path'); const latestVersions = { - 'influxdb': 'v2', - 'influxdbv2': 'v2', - 'telegraf': 'v1', - 'chronograf': 'v1', - 'kapacitor': 'v1', - 'enterprise': 'v1', - 'flux': 'v0', + influxdb: 'v2', + influxdbv2: 'v2', + telegraf: 'v1', + chronograf: 'v1', + kapacitor: 'v1', + enterprise: 'v1', + flux: 'v0', }; const archiveDomain = 'https://archive.docs.influxdata.com'; const docsDomain = 'https://docs.influxdata.com'; exports.handler = (event, context, callback) => { - function temporaryRedirect(condition, newUri) { if (condition) { return callback(null, { status: '302', statusDescription: 'Found', headers: { - location: [{ - key: 'Location', - value: newUri, - }], - } + location: [ + { + key: 'Location', + value: newUri, + }, + ], + }, }); } } @@ -38,14 +39,18 @@ exports.handler = (event, context, callback) => { status: '301', statusDescription: 'Moved Permanently', headers: { - 'location': [{ - key: 'Location', - value: newUri, - }], - 'cache-control': [{ - key: 'Cache-Control', - value: "max-age=3600" - }], + location: [ + { + key: 'Location', + value: newUri, + }, + ], + 'cache-control': [ + { + key: 'Cache-Control', + value: 'max-age=3600', + }, + ], }, }); } @@ -55,34 +60,40 @@ exports.handler = (event, context, callback) => { const parsedPath = path.parse(request.uri); const indexPath = 'index.html'; const validExtensions = { - '.html': true, '.css': true, - '.js': true, - '.xml': true, - '.png': true, - '.gif': true, - '.jpg': true, - '.ico': true, - '.svg': true, '.csv': true, - '.txt': true, - '.lp': true, - '.json': true, - '.rb': true, '.eot': true, + '.gif': true, + '.gz': true, + '.html': true, + '.ico': true, + '.jpg': true, + '.js': true, + '.json': true, + '.lp': true, + '.md': true, + '.md5': true, + '.markdown': true, + '.otf': true, + '.png': true, + '.rb': true, + '.sha256': true, + '.svg': true, + '.tar': true, '.ttf': true, + '.txt': true, '.woff': true, '.woff2': true, - '.otf': true, - '.gz': true, - '.tar': true, + '.yaml': true, + '.yml': true, '.zip': true, - '.md5': true, - '.sha256': true, }; // Remove index.html from path - permanentRedirect(request.uri.endsWith('index.html'), request.uri.substr(0, request.uri.length - indexPath.length)); + permanentRedirect( + request.uri.endsWith('index.html'), + request.uri.substr(0, request.uri.length - indexPath.length) + ); // If file has a valid extension, return the request unchanged if (validExtensions[parsedPath.ext]) { @@ -92,117 +103,536 @@ exports.handler = (event, context, callback) => { ////////////////////// START PRODUCT-SPECIFIC REDIRECTS ////////////////////// //////////////////////// Distributed product redirects /////////////////////// - permanentRedirect(/\/influxdb\/cloud-serverless/.test(request.uri), request.uri.replace(/\/influxdb\/cloud-serverless/, '/influxdb3/cloud-serverless')); - permanentRedirect(/\/influxdb\/cloud-dedicated/.test(request.uri), request.uri.replace(/\/influxdb\/cloud-dedicated/, '/influxdb3/cloud-dedicated')); - permanentRedirect(/\/influxdb\/clustered/.test(request.uri), request.uri.replace(/\/influxdb\/clustered/, '/influxdb3/clustered')); + permanentRedirect( + /\/influxdb\/cloud-serverless/.test(request.uri), + request.uri.replace( + /\/influxdb\/cloud-serverless/, + '/influxdb3/cloud-serverless' + ) + ); + permanentRedirect( + /\/influxdb\/cloud-dedicated/.test(request.uri), + request.uri.replace( + /\/influxdb\/cloud-dedicated/, + '/influxdb3/cloud-dedicated' + ) + ); + permanentRedirect( + /\/influxdb\/clustered/.test(request.uri), + request.uri.replace(/\/influxdb\/clustered/, '/influxdb3/clustered') + ); //////////////////////////// v2 subdomain redirect /////////////////////////// - permanentRedirect(request.headers.host[0].value === 'v2.docs.influxdata.com', `https://docs.influxdata.com${request.uri}`); + permanentRedirect( + request.headers.host[0].value === 'v2.docs.influxdata.com', + `https://docs.influxdata.com${request.uri}` + ); ///////////////////////// Force v in version numbers ///////////////////////// - permanentRedirect(/(^\/[\w]*\/)(\d\.)/.test(request.uri), request.uri.replace(/(^\/[\w]*\/)(\d\.)/, `$1v$2`)); + permanentRedirect( + /(^\/[\w]*\/)(\d\.)/.test(request.uri), + request.uri.replace(/(^\/[\w]*\/)(\d\.)/, `$1v$2`) + ); /////////////////// cloud-iox to cloud-serverless redirect ////////////////// - permanentRedirect(/\/influxdb\/cloud-iox/.test(request.uri), request.uri.replace(/\/influxdb\/cloud-iox/, '/influxdb/cloud-serverless')); - + permanentRedirect( + /\/influxdb\/cloud-iox/.test(request.uri), + request.uri.replace(/\/influxdb\/cloud-iox/, '/influxdb/cloud-serverless') + ); + ////////////// CLI InfluxQL link (catch before latest redirect) ////////////// - permanentRedirect(/\/influxdb\/latest\/query_language\/spec/.test(request.uri), request.uri.replace(/latest/, 'v1')); + permanentRedirect( + /\/influxdb\/latest\/query_language\/spec/.test(request.uri), + request.uri.replace(/latest/, 'v1') + ); ////////////////////////// Latest version redirects ////////////////////////// - temporaryRedirect(/\/influxdb\/latest/.test(request.uri), request.uri.replace(/\/latest/, `/${latestVersions['influxdb']}`)); - temporaryRedirect(/\/telegraf\/latest/.test(request.uri), request.uri.replace(/\/latest/, `/${latestVersions['telegraf']}`)); - temporaryRedirect(/\/chronograf\/latest/.test(request.uri), request.uri.replace(/\/latest/, `/${latestVersions['chronograf']}`)); - temporaryRedirect(/\/kapacitor\/latest/.test(request.uri), request.uri.replace(/\/latest/, `/${latestVersions['kapacitor']}`)); - temporaryRedirect(/\/enterprise_influxdb\/latest/.test(request.uri), request.uri.replace(/\/latest/, `/${latestVersions['enterprise']}`)); - temporaryRedirect(/\/flux\/latest/.test(request.uri), request.uri.replace(/\/latest/, `/${latestVersions['flux']}`)); + temporaryRedirect( + /\/influxdb\/latest/.test(request.uri), + request.uri.replace(/\/latest/, `/${latestVersions['influxdb']}`) + ); + temporaryRedirect( + /\/telegraf\/latest/.test(request.uri), + request.uri.replace(/\/latest/, `/${latestVersions['telegraf']}`) + ); + temporaryRedirect( + /\/chronograf\/latest/.test(request.uri), + request.uri.replace(/\/latest/, `/${latestVersions['chronograf']}`) + ); + temporaryRedirect( + /\/kapacitor\/latest/.test(request.uri), + request.uri.replace(/\/latest/, `/${latestVersions['kapacitor']}`) + ); + temporaryRedirect( + /\/enterprise_influxdb\/latest/.test(request.uri), + request.uri.replace(/\/latest/, `/${latestVersions['enterprise']}`) + ); + temporaryRedirect( + /\/flux\/latest/.test(request.uri), + request.uri.replace(/\/latest/, `/${latestVersions['flux']}`) + ); ////////////////////////// Versionless URL redirects ///////////////////////// - temporaryRedirect(request.uri === '/influxdb/', `/influxdb/${latestVersions['influxdb']}/`); - temporaryRedirect(request.uri === '/telegraf/', `/telegraf/${latestVersions['telegraf']}/`); - temporaryRedirect(request.uri === '/chronograf/', `/chronograf/${latestVersions['chronograf']}/`); - temporaryRedirect(request.uri === '/kapacitor/', `/kapacitor/${latestVersions['kapacitor']}/`); - temporaryRedirect(request.uri === '/enterprise_influxdb/', `/enterprise_influxdb/${latestVersions['enterprise']}/`); - temporaryRedirect(request.uri === '/flux/', `/flux/${latestVersions['flux']}/`); + temporaryRedirect( + request.uri === '/influxdb/', + `/influxdb/${latestVersions['influxdb']}/` + ); + temporaryRedirect( + request.uri === '/telegraf/', + `/telegraf/${latestVersions['telegraf']}/` + ); + temporaryRedirect( + request.uri === '/chronograf/', + `/chronograf/${latestVersions['chronograf']}/` + ); + temporaryRedirect( + request.uri === '/kapacitor/', + `/kapacitor/${latestVersions['kapacitor']}/` + ); + temporaryRedirect( + request.uri === '/enterprise_influxdb/', + `/enterprise_influxdb/${latestVersions['enterprise']}/` + ); + temporaryRedirect( + request.uri === '/flux/', + `/flux/${latestVersions['flux']}/` + ); /////////////////////// VERSION RESTRUCTURE REDIRECTS //////////////////////// - permanentRedirect(/^\/\w+\/(v\d{1})\.[\dx]+/.test(request.uri), request.uri.replace(/^\/(\w+)\/(v\d{1})\.[\dx]+(.*$)/, `/$1/$2$3`)); + permanentRedirect( + /^\/\w+\/(v\d{1})\.[\dx]+/.test(request.uri), + request.uri.replace(/^\/(\w+)\/(v\d{1})\.[\dx]+(.*$)/, `/$1/$2$3`) + ); /////////////////////////////// Flux redirects /////////////////////////////// - // Redirect old Flux guides and introduction - permanentRedirect(/\/flux\/(?:v0\.[0-9]{1,2})\/guides\//.test(request.uri), request.uri.replace(/\/flux\/(?:v0\.[0-9]{1,2}|latest)\/guides\//, `/influxdb/${latestVersions['influxdb']}/query-data/flux/`)); - permanentRedirect(/\/flux\/(?:v0\.[0-9]{1,2})\/introduction\//.test(request.uri), `/flux/${latestVersions['flux']}/get-started/`); + // Redirect old Flux guides and introduction + permanentRedirect( + /\/flux\/(?:v0\.[0-9]{1,2})\/guides\//.test(request.uri), + request.uri.replace( + /\/flux\/(?:v0\.[0-9]{1,2}|latest)\/guides\//, + `/influxdb/${latestVersions['influxdb']}/query-data/flux/` + ) + ); + permanentRedirect( + /\/flux\/(?:v0\.[0-9]{1,2})\/introduction\//.test(request.uri), + `/flux/${latestVersions['flux']}/get-started/` + ); // Redirect Flux language (spec) sections to Flux docs - temporaryRedirect(/\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/language\//.test(request.uri), request.uri.replace(/\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/language\//, `/flux/${latestVersions['flux']}/spec/`)); + temporaryRedirect( + /\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/language\//.test( + request.uri + ), + request.uri.replace( + /\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/language\//, + `/flux/${latestVersions['flux']}/spec/` + ) + ); // Redirect Flux stdlib/built-in sections to Flux stdlib/universe docs - temporaryRedirect(/\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/built-in\/(?:inputs\/|outputs\/|misc\/|tests\/)(\w+\/$)/.test(request.uri), request.uri.replace(/\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/built-in\/(?:inputs\/|outputs\/|misc\/|tests\/)(\w+\/$)/, `/flux/${latestVersions['flux']}/stdlib/universe/$1`)); - temporaryRedirect(/\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/built-in\/(?:inputs\/|outputs\/|misc\/|tests\/)$/.test(request.uri), `/flux/${latestVersions['flux']}/function-types/`); - temporaryRedirect(/\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/built-in\/transformations\/(?:aggregates\/|selectors\/|stream-table\/|type-conversions\/)(\w+\/$)/.test(request.uri), request.uri.replace(/\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/built-in\/transformations\/(?:aggregates\/|selectors\/|stream-table\/|type-conversions\/)(\w+\/$)/, `/flux/${latestVersions['flux']}/stdlib/universe/$1`)); - temporaryRedirect(/\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/built-in\/transformations\/(?:aggregates\/|selectors\/|stream-table\/|type-conversions\/)/.test(request.uri), `/flux/${latestVersions['flux']}/function-types/`); - temporaryRedirect(/\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/built-in\/transformations\/(\w+\/$)/.test(request.uri), request.uri.replace(/\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/built-in\/transformations\/(\w+\/$)/, `/flux/${latestVersions['flux']}/stdlib/universe/$1`)); - temporaryRedirect(/\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/built-in\/transformations\/$/.test(request.uri), `/flux/${latestVersions['flux']}/function-types/`); - temporaryRedirect(/\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/built-in\/$/.test(request.uri), `/flux/${latestVersions['flux']}/stdlib/universe/`); + temporaryRedirect( + /\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/built-in\/(?:inputs\/|outputs\/|misc\/|tests\/)(\w+\/$)/.test( + request.uri + ), + request.uri.replace( + /\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/built-in\/(?:inputs\/|outputs\/|misc\/|tests\/)(\w+\/$)/, + `/flux/${latestVersions['flux']}/stdlib/universe/$1` + ) + ); + temporaryRedirect( + /\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/built-in\/(?:inputs\/|outputs\/|misc\/|tests\/)$/.test( + request.uri + ), + `/flux/${latestVersions['flux']}/function-types/` + ); + temporaryRedirect( + /\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/built-in\/transformations\/(?:aggregates\/|selectors\/|stream-table\/|type-conversions\/)(\w+\/$)/.test( + request.uri + ), + request.uri.replace( + /\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/built-in\/transformations\/(?:aggregates\/|selectors\/|stream-table\/|type-conversions\/)(\w+\/$)/, + `/flux/${latestVersions['flux']}/stdlib/universe/$1` + ) + ); + temporaryRedirect( + /\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/built-in\/transformations\/(?:aggregates\/|selectors\/|stream-table\/|type-conversions\/)/.test( + request.uri + ), + `/flux/${latestVersions['flux']}/function-types/` + ); + temporaryRedirect( + /\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/built-in\/transformations\/(\w+\/$)/.test( + request.uri + ), + request.uri.replace( + /\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/built-in\/transformations\/(\w+\/$)/, + `/flux/${latestVersions['flux']}/stdlib/universe/$1` + ) + ); + temporaryRedirect( + /\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/built-in\/transformations\/$/.test( + request.uri + ), + `/flux/${latestVersions['flux']}/function-types/` + ); + temporaryRedirect( + /\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/built-in\/$/.test( + request.uri + ), + `/flux/${latestVersions['flux']}/stdlib/universe/` + ); - temporaryRedirect(/\/flux\/v0\.x\/stdlib\/built-in\/(?:inputs\/|outputs\/|misc\/|tests\/)(\w+\/$)/.test(request.uri), request.uri.replace(/\/flux\/v0\.x\/stdlib\/built-in\/(?:inputs\/|outputs\/|misc\/|tests\/)(\w+\/$)/, `/flux/${latestVersions['flux']}/stdlib/universe/$1`)); - temporaryRedirect(/\/flux\/v0\.x\/stdlib\/built-in\/(?:inputs\/|outputs\/|misc\/|tests\/)$/.test(request.uri), `/flux/${latestVersions['flux']}/function-types/`); - temporaryRedirect(/\/flux\/v0\.x\/stdlib\/built-in\/transformations\/(?:aggregates\/|selectors\/|stream-table\/|type-conversions\/)(\w+\/$)/.test(request.uri), request.uri.replace(/\/flux\/v0\.x\/stdlib\/built-in\/transformations\/(?:aggregates\/|selectors\/|stream-table\/|type-conversions\/)(\w+\/$)/, `/flux/${latestVersions['flux']}/stdlib/universe/$1`)); - temporaryRedirect(/\/flux\/v0\.x\/stdlib\/built-in\/transformations\/(?:aggregates\/|selectors\/|stream-table\/|type-conversions\/)/.test(request.uri), `/flux/${latestVersions['flux']}/function-types/`); - temporaryRedirect(/\/flux\/v0\.x\/stdlib\/built-in\/transformations\/(\w+\/$)/.test(request.uri), request.uri.replace(/\/flux\/v0\.x\/stdlib\/built-in\/transformations\/(\w+\/$)/, `/flux/${latestVersions['flux']}/stdlib/universe/$1`)); - temporaryRedirect(/\/flux\/v0\.x\/stdlib\/built-in\/transformations\/$/.test(request.uri), `/flux/${latestVersions['flux']}/function-types/`); - temporaryRedirect(/\/flux\/v0\.x\/stdlib\/built-in\/$/.test(request.uri), `/flux/${latestVersions['flux']}/stdlib/universe/`); - temporaryRedirect(/\/flux\/v0\.x\/stdlib\/universe\/(?:inputs\/|outputs\/|misc\/|tests\/|transformations\/|selectors\/|aggregates\/)$/.test(request.uri), `/flux/${latestVersions['flux']}/function-types/`); + temporaryRedirect( + /\/flux\/v0\.x\/stdlib\/built-in\/(?:inputs\/|outputs\/|misc\/|tests\/)(\w+\/$)/.test( + request.uri + ), + request.uri.replace( + /\/flux\/v0\.x\/stdlib\/built-in\/(?:inputs\/|outputs\/|misc\/|tests\/)(\w+\/$)/, + `/flux/${latestVersions['flux']}/stdlib/universe/$1` + ) + ); + temporaryRedirect( + /\/flux\/v0\.x\/stdlib\/built-in\/(?:inputs\/|outputs\/|misc\/|tests\/)$/.test( + request.uri + ), + `/flux/${latestVersions['flux']}/function-types/` + ); + temporaryRedirect( + /\/flux\/v0\.x\/stdlib\/built-in\/transformations\/(?:aggregates\/|selectors\/|stream-table\/|type-conversions\/)(\w+\/$)/.test( + request.uri + ), + request.uri.replace( + /\/flux\/v0\.x\/stdlib\/built-in\/transformations\/(?:aggregates\/|selectors\/|stream-table\/|type-conversions\/)(\w+\/$)/, + `/flux/${latestVersions['flux']}/stdlib/universe/$1` + ) + ); + temporaryRedirect( + /\/flux\/v0\.x\/stdlib\/built-in\/transformations\/(?:aggregates\/|selectors\/|stream-table\/|type-conversions\/)/.test( + request.uri + ), + `/flux/${latestVersions['flux']}/function-types/` + ); + temporaryRedirect( + /\/flux\/v0\.x\/stdlib\/built-in\/transformations\/(\w+\/$)/.test( + request.uri + ), + request.uri.replace( + /\/flux\/v0\.x\/stdlib\/built-in\/transformations\/(\w+\/$)/, + `/flux/${latestVersions['flux']}/stdlib/universe/$1` + ) + ); + temporaryRedirect( + /\/flux\/v0\.x\/stdlib\/built-in\/transformations\/$/.test(request.uri), + `/flux/${latestVersions['flux']}/function-types/` + ); + temporaryRedirect( + /\/flux\/v0\.x\/stdlib\/built-in\/$/.test(request.uri), + `/flux/${latestVersions['flux']}/stdlib/universe/` + ); + temporaryRedirect( + /\/flux\/v0\.x\/stdlib\/universe\/(?:inputs\/|outputs\/|misc\/|tests\/|transformations\/|selectors\/|aggregates\/)$/.test( + request.uri + ), + `/flux/${latestVersions['flux']}/function-types/` + ); // Redirect Flux stdlib/influxdb sections to Flux stdlib/influxdata docs - temporaryRedirect(/\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/influxdb\//.test(request.uri), request.uri.replace(/\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/influxdb\//, `/flux/${latestVersions['flux']}/stdlib/influxdata/influxdb/`)); - temporaryRedirect(/\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/monitor\//.test(request.uri), request.uri.replace(/\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/monitor\//, `/flux/${latestVersions['flux']}/stdlib/influxdata/influxdb/monitor/`)); - temporaryRedirect(/\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/influxdb-sample\//.test(request.uri), request.uri.replace(/\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/influxdb-sample\//, `/flux/${latestVersions['flux']}/stdlib/influxdata/influxdb/sample/`)); - temporaryRedirect(/\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/influxdb-schema\//.test(request.uri), request.uri.replace(/\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/influxdb-schema\//, `/flux/${latestVersions['flux']}/stdlib/influxdata/influxdb/schema/`)); - temporaryRedirect(/\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/secrets\//.test(request.uri), request.uri.replace(/\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/secrets\//, `/flux/${latestVersions['flux']}/stdlib/influxdata/influxdb/secrets/`)); - temporaryRedirect(/\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/influxdb-tasks\//.test(request.uri), request.uri.replace(/\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/influxdb-tasks\//, `/flux/${latestVersions['flux']}/stdlib/influxdata/influxdb/tasks/`)); - temporaryRedirect(/\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/influxdb-v1\//.test(request.uri), request.uri.replace(/\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/influxdb-v1\//, `/flux/${latestVersions['flux']}/stdlib/influxdata/influxdb/v1/`)); + temporaryRedirect( + /\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/influxdb\//.test( + request.uri + ), + request.uri.replace( + /\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/influxdb\//, + `/flux/${latestVersions['flux']}/stdlib/influxdata/influxdb/` + ) + ); + temporaryRedirect( + /\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/monitor\//.test( + request.uri + ), + request.uri.replace( + /\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/monitor\//, + `/flux/${latestVersions['flux']}/stdlib/influxdata/influxdb/monitor/` + ) + ); + temporaryRedirect( + /\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/influxdb-sample\//.test( + request.uri + ), + request.uri.replace( + /\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/influxdb-sample\//, + `/flux/${latestVersions['flux']}/stdlib/influxdata/influxdb/sample/` + ) + ); + temporaryRedirect( + /\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/influxdb-schema\//.test( + request.uri + ), + request.uri.replace( + /\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/influxdb-schema\//, + `/flux/${latestVersions['flux']}/stdlib/influxdata/influxdb/schema/` + ) + ); + temporaryRedirect( + /\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/secrets\//.test( + request.uri + ), + request.uri.replace( + /\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/secrets\//, + `/flux/${latestVersions['flux']}/stdlib/influxdata/influxdb/secrets/` + ) + ); + temporaryRedirect( + /\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/influxdb-tasks\//.test( + request.uri + ), + request.uri.replace( + /\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/influxdb-tasks\//, + `/flux/${latestVersions['flux']}/stdlib/influxdata/influxdb/tasks/` + ) + ); + temporaryRedirect( + /\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/influxdb-v1\//.test( + request.uri + ), + request.uri.replace( + /\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/influxdb-v1\//, + `/flux/${latestVersions['flux']}/stdlib/influxdata/influxdb/v1/` + ) + ); // Redirect Flux stdlib/contrib sections to Flux stdlib/contrib/user docs - temporaryRedirect(/\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/alerta\//.test(request.uri), request.uri.replace(/\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/alerta\//, `/flux/${latestVersions['flux']}/stdlib/contrib/bonitoo-io/alerta/`)); - temporaryRedirect(/\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/bigpanda\//.test(request.uri), request.uri.replace(/\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/bigpanda\//, `/flux/${latestVersions['flux']}/stdlib/contrib/rhajek/bigpanda/`)); - temporaryRedirect(/\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/discord\//.test(request.uri), request.uri.replace(/\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/discord\//, `/flux/${latestVersions['flux']}/stdlib/contrib/chobbs/discord/`)); - temporaryRedirect(/\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/events\//.test(request.uri), request.uri.replace(/\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/events\//, `/flux/${latestVersions['flux']}/stdlib/contrib/tomhollingworth/events/`)); - temporaryRedirect(/\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/influxdb\//.test(request.uri), request.uri.replace(/\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/influxdb\//, `/flux/${latestVersions['flux']}/stdlib/contrib/jsternberg/influxdb/`)); - temporaryRedirect(/\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/teams\//.test(request.uri), request.uri.replace(/\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/teams\//, `/flux/${latestVersions['flux']}/stdlib/contrib/sranka/teams/`)); - temporaryRedirect(/\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/opsgenie\//.test(request.uri), request.uri.replace(/\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/opsgenie\//, `/flux/${latestVersions['flux']}/stdlib/contrib/sranka/opsgenie/`)); - temporaryRedirect(/\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/rows\//.test(request.uri), request.uri.replace(/\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/rows\//, `/flux/${latestVersions['flux']}/stdlib/contrib/jsternberg/rows/`)); - temporaryRedirect(/\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/sensu\//.test(request.uri), request.uri.replace(/\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/sensu\//, `/flux/${latestVersions['flux']}/stdlib/contrib/sranka/sensu/`)); - temporaryRedirect(/\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/telegram\//.test(request.uri), request.uri.replace(/\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/telegram\//, `/flux/${latestVersions['flux']}/stdlib/contrib/sranka/telegram/`)); - temporaryRedirect(/\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/tickscript\//.test(request.uri), request.uri.replace(/\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/tickscript\//, `/flux/${latestVersions['flux']}/stdlib/contrib/bonitoo-io/tickscript/`)); - temporaryRedirect(/\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/victorops\//.test(request.uri), request.uri.replace(/\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/victorops\//, `/flux/${latestVersions['flux']}/stdlib/contrib/bonitoo-io/victorops/`)); - temporaryRedirect(/\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/webexteams\//.test(request.uri), request.uri.replace(/\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/webexteams\//, `/flux/${latestVersions['flux']}/stdlib/contrib/sranka/webexteams/`)); - temporaryRedirect(/\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/zenoss\//.test(request.uri), request.uri.replace(/\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/zenoss\//, `/flux/${latestVersions['flux']}/stdlib/contrib/bonitoo-io/zenoss/`)); + temporaryRedirect( + /\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/alerta\//.test( + request.uri + ), + request.uri.replace( + /\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/alerta\//, + `/flux/${latestVersions['flux']}/stdlib/contrib/bonitoo-io/alerta/` + ) + ); + temporaryRedirect( + /\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/bigpanda\//.test( + request.uri + ), + request.uri.replace( + /\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/bigpanda\//, + `/flux/${latestVersions['flux']}/stdlib/contrib/rhajek/bigpanda/` + ) + ); + temporaryRedirect( + /\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/discord\//.test( + request.uri + ), + request.uri.replace( + /\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/discord\//, + `/flux/${latestVersions['flux']}/stdlib/contrib/chobbs/discord/` + ) + ); + temporaryRedirect( + /\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/events\//.test( + request.uri + ), + request.uri.replace( + /\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/events\//, + `/flux/${latestVersions['flux']}/stdlib/contrib/tomhollingworth/events/` + ) + ); + temporaryRedirect( + /\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/influxdb\//.test( + request.uri + ), + request.uri.replace( + /\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/influxdb\//, + `/flux/${latestVersions['flux']}/stdlib/contrib/jsternberg/influxdb/` + ) + ); + temporaryRedirect( + /\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/teams\//.test( + request.uri + ), + request.uri.replace( + /\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/teams\//, + `/flux/${latestVersions['flux']}/stdlib/contrib/sranka/teams/` + ) + ); + temporaryRedirect( + /\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/opsgenie\//.test( + request.uri + ), + request.uri.replace( + /\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/opsgenie\//, + `/flux/${latestVersions['flux']}/stdlib/contrib/sranka/opsgenie/` + ) + ); + temporaryRedirect( + /\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/rows\//.test( + request.uri + ), + request.uri.replace( + /\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/rows\//, + `/flux/${latestVersions['flux']}/stdlib/contrib/jsternberg/rows/` + ) + ); + temporaryRedirect( + /\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/sensu\//.test( + request.uri + ), + request.uri.replace( + /\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/sensu\//, + `/flux/${latestVersions['flux']}/stdlib/contrib/sranka/sensu/` + ) + ); + temporaryRedirect( + /\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/telegram\//.test( + request.uri + ), + request.uri.replace( + /\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/telegram\//, + `/flux/${latestVersions['flux']}/stdlib/contrib/sranka/telegram/` + ) + ); + temporaryRedirect( + /\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/tickscript\//.test( + request.uri + ), + request.uri.replace( + /\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/tickscript\//, + `/flux/${latestVersions['flux']}/stdlib/contrib/bonitoo-io/tickscript/` + ) + ); + temporaryRedirect( + /\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/victorops\//.test( + request.uri + ), + request.uri.replace( + /\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/victorops\//, + `/flux/${latestVersions['flux']}/stdlib/contrib/bonitoo-io/victorops/` + ) + ); + temporaryRedirect( + /\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/webexteams\//.test( + request.uri + ), + request.uri.replace( + /\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/webexteams\//, + `/flux/${latestVersions['flux']}/stdlib/contrib/sranka/webexteams/` + ) + ); + temporaryRedirect( + /\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/zenoss\//.test( + request.uri + ), + request.uri.replace( + /\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\/contrib\/zenoss\//, + `/flux/${latestVersions['flux']}/stdlib/contrib/bonitoo-io/zenoss/` + ) + ); // Generic Flux stdlib redirect - temporaryRedirect(/\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\//.test(request.uri), request.uri.replace(/\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\//, `/flux/${latestVersions['flux']}/stdlib/`)); - temporaryRedirect(/\/flux\/v0\.x\/functions\//.test(request.uri), request.uri.replace(/(\/flux\/v0\.x\/)functions\/(.*)/, `$1stdlib/$2`)); - temporaryRedirect(/\/flux\/v0\.x\/stdlib\/experimental\/to\/.+/.test(request.uri), request.uri.replace(/(\/flux\/v0\.x\/stdlib\/experimental\/)to\/(.+)/, `$1$2`)); + temporaryRedirect( + /\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\//.test( + request.uri + ), + request.uri.replace( + /\/influxdb\/(?:v2\.[0-9]{1,2}|cloud)\/reference\/flux\/stdlib\//, + `/flux/${latestVersions['flux']}/stdlib/` + ) + ); + temporaryRedirect( + /\/flux\/v0\.x\/functions\//.test(request.uri), + request.uri.replace(/(\/flux\/v0\.x\/)functions\/(.*)/, `$1stdlib/$2`) + ); + temporaryRedirect( + /\/flux\/v0\.x\/stdlib\/experimental\/to\/.+/.test(request.uri), + request.uri.replace( + /(\/flux\/v0\.x\/stdlib\/experimental\/)to\/(.+)/, + `$1$2` + ) + ); // Redirect outdated Chronograf links - temporaryRedirect(/\/flux\/v[0,1]\.x\/stdlib\/built-in\/(?:inputs\/|outputs\/|misc\/|tests\/)(\w+\/$)/.test(request.uri), request.uri.replace(/\/flux\/v[0,1]\.x\/stdlib\/built-in\/(?:inputs\/|outputs\/|misc\/|tests\/)(\w+\/$)/, `/flux/${latestVersions['flux']}/stdlib/universe/$1`)); - temporaryRedirect(/\/flux\/v[0,1]\.x\/stdlib\/built-in\/transformations\/(?:aggregates\/|selectors\/|stream-table\/|type-conversions\/)(\w+\/$)/.test(request.uri), request.uri.replace(/\/flux\/v[0,1]\.x\/stdlib\/built-in\/transformations\/(?:aggregates\/|selectors\/|stream-table\/|type-conversions\/)(\w+\/$)/, `/flux/${latestVersions['flux']}/stdlib/universe/$1`)); - temporaryRedirect(/\/flux\/v[0,1]\.x\/stdlib\/built-in\/transformations\/(\w+\/$)/.test(request.uri), request.uri.replace(/\/flux\/v[0,1]\.x\/stdlib\/built-in\/transformations\/(\w+\/$)/, `/flux/${latestVersions['flux']}/stdlib/universe/$1`)); - temporaryRedirect(/\/flux\/v[0,1]\.x\/stdlib\/secrets\//.test(request.uri), request.uri.replace(/\/flux\/v[0,1]\.x\/stdlib\/secrets\//, `/flux/${latestVersions['flux']}/stdlib/influxdata/influxdb/secrets/`)); - temporaryRedirect(/\/flux\/v[0,1]\.x\/stdlib\/influxdb-v1\//.test(request.uri), request.uri.replace(/\/flux\/v[0,1]\.x\/stdlib\/influxdb-v1\//, `/flux/${latestVersions['flux']}/stdlib/influxdata/influxdb/v1/`)); + temporaryRedirect( + /\/flux\/v[0,1]\.x\/stdlib\/built-in\/(?:inputs\/|outputs\/|misc\/|tests\/)(\w+\/$)/.test( + request.uri + ), + request.uri.replace( + /\/flux\/v[0,1]\.x\/stdlib\/built-in\/(?:inputs\/|outputs\/|misc\/|tests\/)(\w+\/$)/, + `/flux/${latestVersions['flux']}/stdlib/universe/$1` + ) + ); + temporaryRedirect( + /\/flux\/v[0,1]\.x\/stdlib\/built-in\/transformations\/(?:aggregates\/|selectors\/|stream-table\/|type-conversions\/)(\w+\/$)/.test( + request.uri + ), + request.uri.replace( + /\/flux\/v[0,1]\.x\/stdlib\/built-in\/transformations\/(?:aggregates\/|selectors\/|stream-table\/|type-conversions\/)(\w+\/$)/, + `/flux/${latestVersions['flux']}/stdlib/universe/$1` + ) + ); + temporaryRedirect( + /\/flux\/v[0,1]\.x\/stdlib\/built-in\/transformations\/(\w+\/$)/.test( + request.uri + ), + request.uri.replace( + /\/flux\/v[0,1]\.x\/stdlib\/built-in\/transformations\/(\w+\/$)/, + `/flux/${latestVersions['flux']}/stdlib/universe/$1` + ) + ); + temporaryRedirect( + /\/flux\/v[0,1]\.x\/stdlib\/secrets\//.test(request.uri), + request.uri.replace( + /\/flux\/v[0,1]\.x\/stdlib\/secrets\//, + `/flux/${latestVersions['flux']}/stdlib/influxdata/influxdb/secrets/` + ) + ); + temporaryRedirect( + /\/flux\/v[0,1]\.x\/stdlib\/influxdb-v1\//.test(request.uri), + request.uri.replace( + /\/flux\/v[0,1]\.x\/stdlib\/influxdb-v1\//, + `/flux/${latestVersions['flux']}/stdlib/influxdata/influxdb/v1/` + ) + ); // Redirect Flux release notes - permanentRedirect(/\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/release-notes\/flux\//.test(request.uri), `/flux/${latestVersions['flux']}/release-notes/`); + permanentRedirect( + /\/influxdb\/(v2\.[0-9]{1,2}|cloud)\/reference\/release-notes\/flux\//.test( + request.uri + ), + `/flux/${latestVersions['flux']}/release-notes/` + ); ////////////////////////////// v2 path redirect ////////////////////////////// - permanentRedirect(/^\/v2\.0\//.test(request.uri), request.uri.replace(/^\/v2\.0\//, `/influxdb/v2.0/`)); + permanentRedirect( + /^\/v2\.0\//.test(request.uri), + request.uri.replace(/^\/v2\.0\//, `/influxdb/v2.0/`) + ); ////////////////////////// Archive version redirects ///////////////////////// - permanentRedirect(/\/influxdb\/(?:v0\.[0-9]{1,2}|v1\.[0-2])\//.test(request.uri), `${archiveDomain}${request.uri}`); - permanentRedirect(/\/telegraf\/(?:v0\.[0-9]{1,2}|v1\.[0-8])\//.test(request.uri), `${archiveDomain}${request.uri}`); - permanentRedirect(/\/chronograf\/(?:v0\.[0-9]{1,2}|v1\.[0-5])\//.test(request.uri), `${archiveDomain}${request.uri}`); - permanentRedirect(/\/kapacitor\/(?:v0\.[0-9]{1,2}|v1\.[0-3])\//.test(request.uri), `${archiveDomain}${request.uri}`); - permanentRedirect(/\/enterprise_influxdb\/v1\.[0-3]\//.test(request.uri), `${archiveDomain}${request.uri}`); - permanentRedirect(/\/enterprise_kapacitor\//.test(request.uri), `${archiveDomain}${request.uri}`); + permanentRedirect( + /\/influxdb\/(?:v0\.[0-9]{1,2}|v1\.[0-2])\//.test(request.uri), + `${archiveDomain}${request.uri}` + ); + permanentRedirect( + /\/telegraf\/(?:v0\.[0-9]{1,2}|v1\.[0-8])\//.test(request.uri), + `${archiveDomain}${request.uri}` + ); + permanentRedirect( + /\/chronograf\/(?:v0\.[0-9]{1,2}|v1\.[0-5])\//.test(request.uri), + `${archiveDomain}${request.uri}` + ); + permanentRedirect( + /\/kapacitor\/(?:v0\.[0-9]{1,2}|v1\.[0-3])\//.test(request.uri), + `${archiveDomain}${request.uri}` + ); + permanentRedirect( + /\/enterprise_influxdb\/v1\.[0-3]\//.test(request.uri), + `${archiveDomain}${request.uri}` + ); + permanentRedirect( + /\/enterprise_kapacitor\//.test(request.uri), + `${archiveDomain}${request.uri}` + ); /////////////////////// END PRODUCT-SPECIFIC REDIRECTS /////////////////////// diff --git a/eslint.config.js b/eslint.config.js index 0f7cd7e65..23104f7a1 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -106,6 +106,33 @@ export default [ files: ['assets/js/**/*.js'], rules: { // Rules specific to JavaScript in Hugo assets + // Prevent imports from debug-helpers.js + 'no-restricted-imports': [ + 'error', + { + paths: [ + { + name: './utils/debug-helpers.js', + message: + 'Remove debugging functions before committing. Debug helpers should not be used in production code.', + }, + { + name: '/utils/debug-helpers.js', + message: + 'Remove debugging functions before committing. Debug helpers should not be used in production code.', + }, + ], + }, + ], + // Prevent use of debug functions in production code + 'no-restricted-syntax': [ + 'error', + { + selector: 'CallExpression[callee.name=/^debug(Log|Break|Inspect)$/]', + message: + 'Remove debugging functions before committing. Debug helpers should not be used in production code.', + }, + ], }, }, { diff --git a/helper-scripts/README.md b/helper-scripts/README.md new file mode 100644 index 000000000..73f3c2067 --- /dev/null +++ b/helper-scripts/README.md @@ -0,0 +1,36 @@ +# InfluxData documentation helper scripts + +This directory contains scripts designed to help make specific maintenance +processes easier. + +## InfluxDB Clustered release artifacts + +**Script:** `./clustered-release-artifacts.sh` + +Each InfluxDB Clustered release has the following associated artifacts that need +to be provided with the release notes: + +- `example-customer.yaml` +- `app-instance-schema.json` + +This script uses an InfluxDB Clustered pull secret to pull down the required +assets and store them in `static/downloads/clustered-release-artifacts/`. + +1. **Set up the pull secret:** + + The **Clustered Pull Secret** (config.json) is available in Docs Team + 1Password vault. Download the pull secret and store it in the + `/tmp/influxdbsecret` directory on your local machine. + +2. Install dependencies: + + - [Install `crane`](https://github.com/google/go-containerregistry/tree/main/cmd/crane#installation). + - [Install `jq`](https://jqlang.org/download/) + +3. From the root of the docs project directory, run the following command to + execute the script. Provide the release version as an argument to the + script--for example: + + ```sh + sh ./helper-scripts/clustered-release-artifacts.sh 20250508-1719206 + ``` diff --git a/helper-scripts/clustered-release-artifacts.sh b/helper-scripts/clustered-release-artifacts.sh new file mode 100644 index 000000000..a3eede6e5 --- /dev/null +++ b/helper-scripts/clustered-release-artifacts.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +set -euo pipefail + +if [ $# -ne 1 ]; then + echo "Usage: $0 " + exit 1 +fi + +RELEASE="$1" +IMAGE="us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:$RELEASE" +WORKDIR=$(mktemp -d) + +# Target directory relative to where the script is run +BASE_DIR="./static/downloads/clustered-release-artifacts" +TARGET_DIR="$BASE_DIR/$RELEASE" + +echo "Creating release directory: $TARGET_DIR" +mkdir -p "$TARGET_DIR" + +echo "Fetching manifest digest..." +DIGEST=$(DOCKER_CONFIG=/tmp/influxdbsecret crane manifest "$IMAGE" | jq -r '.layers[1].digest') + +echo "Downloading and extracting assets..." +DOCKER_CONFIG=/tmp/influxdbsecret \ +crane blob "$IMAGE@$DIGEST" | tar -xvzf - -C "$WORKDIR" + +# Find the top-level extracted directory +SUBDIR=$(find "$WORKDIR" -mindepth 1 -maxdepth 1 -type d) + +echo "Copying selected files to release directory..." +cp "$SUBDIR/app-instance-schema.json" "$TARGET_DIR/" +cp "$SUBDIR/example-customer.yml" "$TARGET_DIR/" + +echo "Cleaning up temporary directory..." +rm -rf "$WORKDIR" + +echo "Done. Selected assets for $RELEASE are in $TARGET_DIR" diff --git a/hugo.staging.yml b/hugo.staging.yml deleted file mode 100644 index dd936bf3a..000000000 --- a/hugo.staging.yml +++ /dev/null @@ -1,60 +0,0 @@ -baseURL: https://test2.docs.influxdata.com/ -languageCode: en-us -title: InfluxDB Documentation - -# Git history information for lastMod-type functionality -enableGitInfo: true - -# Syntax Highlighting -pygmentsCodefences: true -pygmentsUseClasses: true - -# Preserve case in article tags -preserveTaxonomyNames: true - -# Generate a robots.txt -enableRobotsTXT: true - -# Custom staging params -params: - environment: staging - -# Markdown rendering options -blackfriday: - hrefTargetBlank: true - smartDashes: false - -taxonomies: - influxdb/v2/tag: influxdb/v2/tags - influxdb/cloud/tag: influxdb/cloud/tags - influxdb3/cloud-serverless/tag: influxdb/cloud-serverless/tags - influxdb/cloud-dedicated/tag: influxdb/cloud-dedicated/tags - influxdb/clustered/tag: influxdb/clustered/tags - influxdb3/core/tag: influxdb3/core/tags - influxdb3/enterprise/tag: influxdb3/enterprise/tags - flux/v0/tag: flux/v0/tags - -markup: - goldmark: - renderer: - unsafe: true - extensions: - linkify: false - parser: - attribute: - block: true - -privacy: - googleAnalytics: - anonymizeIP: false - disable: false - respectDoNotTrack: true - useSessionStorage: false - youtube: - disable: false - privacyEnhanced: true -outputFormats: - json: - mediaType: application/json - baseName: pages - isPlainText: true diff --git a/hugo_stats.json b/hugo_stats.json new file mode 100644 index 000000000..7550a0b1f --- /dev/null +++ b/hugo_stats.json @@ -0,0 +1,18019 @@ +{ + "htmlElements": { + "tags": [ + "--", + "?xml", + "a", + "api-access-token", + "article", + "aside", + "b", + "blockquote", + "body", + "bot-username", + "br", + "button", + "circle", + "code", + "database", + "div", + "ellipse", + "em", + "form", + "g", + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "head", + "host", + "hr", + "html", + "iframe", + "img", + "input", + "label", + "li", + "limit", + "limitevery", + "line", + "link", + "meta", + "n", + "nil", + "node-type", + "nolink", + "noscript", + "ol", + "p", + "path", + "polygon", + "polyline", + "pre", + "qid", + "rect", + "script", + "section", + "span", + "strong", + "style", + "sup", + "svg", + "table", + "tbody", + "td", + "text", + "textarea", + "th", + "thead", + "title", + "tr", + "ul", + "var" + ], + "classes": [ + "-depth0", + "-depth1", + "-depth2", + "AddCell_New", + "AlertTriangle", + "Annotate_New", + "BarChart_New", + "Bell", + "Bill", + "BookCode", + "BucketSolid", + "CMpTe", + "Calendar", + "CaretOutlineRight", + "Chat", + "Checkmark_New", + "Clock_New", + "Cloud", + "CogOutline_New", + "CogSolid_New", + "CrownSolid_New", + "CuboSolid", + "Darkmode_New", + "DashH", + "Download_New", + "Duplicate_New", + "EoFth", + "ExpandB", + "Export_New", + "EyeClosed", + "EyeOpen", + "Flask", + "GraphLine_New", + "Group", + "KWWXd", + "Lightmode_New", + "Link", + "More", + "Pause", + "Pencil", + "Play", + "Plus_New", + "Refresh_New", + "Remove_New", + "Search_New", + "Share", + "Shield", + "SidebarClose", + "SidebarOpen", + "Text_New", + "Trash_New", + "Upload_New", + "User", + "YJDJL", + "abbr", + "account", + "acct-icon", + "acct-icon-v3", + "acct-icon-v4", + "acct-inner", + "acct-inner-v3", + "acct-inner-v4", + "acct-label", + "acct-label-v3", + "acct-label-v4", + "actions", + "active", + "add-btn-round", + "add-cell-new", + "alert-triangle-new", + "all-caps", + "annotate-new", + "api-content", + "api-endpoint", + "api-info", + "array", + "arrow", + "article", + "article--content", + "ask-ai-open", + "ask-ai-trigger", + "asterisk", + "auth-item", + "avoid-wrap", + "bBFKjV", + "bCvCHz", + "bHzJuy", + "bIbZvd", + "bJnWIW", + "bPmeoW", + "bXnXQF", + "back", + "banner-content", + "banner-cta", + "bar-chart-new", + "bbfNvi", + "bcnRwz", + "bell", + "beta", + "beta-content", + "bg-overlay", + "bjdvNh", + "block", + "blue", + "bmwRob", + "bnCoiE", + "bold", + "book-pencil", + "boolean", + "border-left", + "bottom", + "bowlofsweets", + "bsGeIE", + "btn", + "buttons", + "bwNcZa", + "bwfRit", + "bymHyU", + "c1", + "c2", + "cAOCuf", + "cEsevO", + "cJyzuM", + "cTueGk", + "cTzVOd", + "cVHUjN", + "cWoVOF", + "calendar", + "caption", + "card", + "cards", + "categories", + "category", + "category-head", + "caution", + "center", + "cf-icon", + "cfctgs", + "checkbox", + "checkbox-text", + "checkmark-new", + "checkpoint", + "children", + "children-links", + "children-list", + "children-toggle", + "chroma", + "chronograf", + "circle", + "cite", + "clock-new", + "close-notification", + "closed", + "cloud", + "cloud-urls", + "cluster-name", + "clustered", + "clusters", + "code-placeholder", + "code-placeholder-edit-icon", + "code-placeholder-key", + "code-placeholder-wrapper", + "code-tab-content", + "code-tabs", + "code-tabs-wrapper", + "cog-solid-new", + "collapsed", + "collapser", + "collapsible", + "color-key", + "column-list", + "columns-4", + "columns-wrapper", + "comma", + "community", + "content-wrapper", + "copyright", + "crown-solid-new", + "csngrC", + "cuYWRV", + "cubo", + "current-date", + "current-row", + "current-time", + "current-timestamp", + "current-version", + "custom", + "custom-time-trigger", + "custom-time-trigger__button", + "custom-timestamps", + "dFWqin", + "dXjyFC", + "dYlGyN", + "dashed", + "date", + "delete", + "deleted", + "deleted-label", + "deprecated", + "df-icon", + "diagram-line", + "discord", + "divider", + "dkqrXs", + "dmghQN", + "dnuELe", + "docs-home", + "download", + "download-new", + "dropdown", + "dropdown-arrow", + "dropdown-option", + "dropdown-selector", + "dropdown-selector-content", + "dropdown-selector-search", + "dropdown-selector-value", + "duplicate", + "dzKtIW", + "eONCmm", + "ePwgUU", + "eQQUSD", + "eQzShU", + "eSYQnm", + "eUdCtG", + "eWToXe", + "edit", + "efuQZt", + "egQuEZ", + "el", + "ellipsis", + "enterprise-eol-date", + "enterprise_influxdb", + "ephemeral", + "error-code", + "error-code-border", + "error-content", + "error-page", + "euJMtE", + "euRMgx", + "evYMTo", + "even-wrap", + "example", + "exclude", + "expand", + "expand-b", + "expand-content", + "expand-label", + "expand-link", + "expand-toggle", + "expand-wrapper", + "experimental", + "export-new", + "external", + "eye-closed", + "eye-open-new", + "fABPTr", + "fKFAhr", + "fQwboL", + "fXuQNl", + "fake-radio", + "fcIjHV", + "feather", + "feather-chevron-down", + "feedback", + "feedback-channels", + "ffLgqz", + "fguZND", + "fieldset", + "filter-category", + "filter-item", + "filter-list", + "flex-container", + "flex-wrapper", + "flux", + "flux-influxdb", + "flux-influxdb-versions", + "flux-water-diagram", + "foNyhx", + "focused", + "footer-widgets", + "form-buttons", + "fqzhkP", + "frame", + "fs-diagram", + "full", + "fullscreen-close", + "fullscreen-code", + "function-list", + "fxZJZV", + "gAerEa", + "gBTuHc", + "gBwOdz", + "gCgqqY", + "gEtKwR", + "gGvkZD", + "gJKPGC", + "gKXwn", + "gNOLNk", + "gPCWYe", + "gWxDzL", + "ga-announcement", + "gaEEuU", + "gcushC", + "gemyvL", + "geo-cell", + "geo-point", + "geo-region", + "get", + "git-head", + "github", + "github-link", + "gjiGnZ", + "gkwAYh", + "gmNZmS", + "graph-line-new", + "graphline-2", + "green", + "group", + "group-title", + "group-wrapper", + "groups", + "groups-with-frame", + "hDhyRZ", + "hFbBvr", + "hHRjJL", + "hINeXe", + "hQgNml", + "hUSnpT", + "half", + "handle-new", + "head", + "helpful", + "hide", + "hide-commas", + "hide-elements", + "hide-whitespace", + "highlight", + "hikpbD", + "home", + "home-content", + "horizontal", + "hoverable", + "hsSsLr", + "http-verb", + "hyMKIl", + "hzjqvH", + "iARuYK", + "iAqBwY", + "iEFeuB", + "iEcHcE", + "iULjjV", + "iUxAWq", + "iXmHCl", + "iZkjfb", + "icZuVc", + "icon", + "icon-add-cell", + "icon-alert", + "icon-bar-chart", + "icon-bell", + "icon-book-pencil", + "icon-calendar", + "icon-chat", + "icon-checkmark", + "icon-chevron-right", + "icon-cloud", + "icon-cog-thick", + "icon-crown", + "icon-dashboards", + "icon-data-explorer", + "icon-disks-nav", + "icon-download", + "icon-duplicate", + "icon-export", + "icon-eye-closed", + "icon-eye-open", + "icon-fullscreen", + "icon-github", + "icon-influx-icon", + "icon-influx-logo", + "icon-influx-logotype", + "icon-nav-chat", + "icon-note", + "icon-organizations", + "icon-pause", + "icon-pencil", + "icon-play", + "icon-refresh", + "icon-remove", + "icon-search", + "icon-trash", + "icon-triangle", + "icon-ui-plus", + "icon-user", + "icon-users-trio", + "icon-wrench-2", + "icon-wrench-nav", + "icon-x", + "iglPxx", + "ihkizP", + "ikafbi", + "ikavEm", + "important", + "inNGOu", + "inactive", + "influx-home", + "influxdb", + "influxdb-connector", + "influxdb-logo", + "influxdb-versions", + "influxdb3", + "influxdbu-banner", + "influxdbu-logo", + "influxql-table-meta", + "info", + "ingest-new", + "initial", + "inline", + "inner", + "interval", + "ipvKNC", + "issue", + "italic", + "item", + "item-list", + "iyzZle", + "jLtOTj", + "jRjoAh", + "jSPrUM", + "jaCkRh", + "jdCbTS", + "jlyJRK", + "jnEbBv", + "joKODG", + "joaceI", + "jolsGY", + "juYXUf", + "jvHOSr", + "jxJlxZ", + "jzRrfm", + "kBgcMI", + "kHJfMF", + "kHKMOg", + "kZsYIY", + "kafka-toggle", + "kapacitor", + "keSXcO", + "keep", + "keep-tab", + "keep-url", + "key", + "key-geo-cell", + "key-geo-point", + "key-geo-region", + "keybinding", + "keyword", + "kmMwfl", + "large", + "last", + "learn-items", + "left", + "lfknEY", + "lhdonw", + "lifecycle-wrapper", + "list-links", + "list-note", + "lkJIic", + "llGFDD", + "lndJCi", + "loader", + "loader-wrapper", + "logo-row", + "long", + "magenta", + "main", + "measurement", + "medium", + "menu-content", + "mermaid", + "meta", + "metadata", + "middle", + "min", + "modal", + "modal-body", + "modal-content", + "modal-overlay", + "modal-wrapper", + "monospace", + "more-info", + "nav-category", + "nav-icon", + "nav-icon-", + "nav-icon-label", + "nav-icon-v3", + "nav-icon-v4", + "nav-item", + "nav-item-", + "nav-item-v3", + "nav-item-v4", + "nav-items", + "nav-items-", + "nav-items-v3", + "nav-items-v4", + "nav-label-", + "nav-label-v3", + "nav-label-v4", + "new", + "next", + "no-shorthand", + "node", + "normal", + "note", + "notebook-add-cell", + "notification", + "notification-content", + "notification-slug", + "notification-title", + "nowrap", + "number", + "obj", + "old-version", + "one", + "one-quarter", + "one-third", + "op25", + "op50", + "op65", + "op70", + "open", + "operation", + "operation-type", + "operator-example", + "orange", + "orgname", + "outer", + "padding-wrapper", + "page-nav-btns", + "page-wrapper", + "patch", + "pause", + "pcWDP", + "pencil", + "pending", + "periods", + "pink", + "plan-arrow", + "plan-block", + "plan-column", + "plan-double-column", + "plan-single-column", + "platform", + "play", + "plugin-card", + "plus-new", + "point", + "points", + "post", + "powered-by-example", + "pref-tab", + "prev", + "product", + "product-group", + "product-info", + "product-links", + "product-list", + "products", + "property", + "provider", + "providers", + "punctuation", + "put", + "q-link", + "quarter", + "quix-connector", + "quix-logo", + "quix-stream-component", + "quix-stream-container", + "quix-streams-logo", + "rVwLz", + "radio", + "radio-btns", + "range-interval", + "range-numeric", + "react-tabs__tab", + "react-tabs__tab--selected", + "react-tabs__tab-list", + "react-tabs__tab-panel", + "react-tabs__tab-panel--selected", + "read-more", + "reddit", + "redoc-json", + "redoc-markdown", + "redoc-wrap", + "reference", + "refresh-new", + "region", + "region-group", + "related", + "remove-new", + "req", + "required", + "resources", + "retention-label", + "right", + "row", + "rows", + "sc-Arkif", + "sc-EZqKI", + "sc-FRrlG", + "sc-TtZnY", + "sc-WZYut", + "sc-amkrK", + "sc-bBjRSN", + "sc-bCwfaz", + "sc-bQCEYZ", + "sc-bTDOke", + "sc-bXexck", + "sc-bYwzuL", + "sc-bkbkJK", + "sc-bqGGPW", + "sc-cBoqAE", + "sc-cKRKFl", + "sc-cOifOu", + "sc-cTJkRt", + "sc-carFqZ", + "sc-cbeScs", + "sc-ciSkZP", + "sc-ckTSus", + "sc-crzoAE", + "sc-cxNHIi", + "sc-dIsUp", + "sc-dPaNzc", + "sc-dTSzeu", + "sc-dWBRfb", + "sc-dkQUaI", + "sc-dlMDgC", + "sc-dtLLSn", + "sc-dvUynV", + "sc-dvXYtj", + "sc-eCApnc", + "sc-eGJWMs", + "sc-eJocfa", + "sc-eWnToP", + "sc-efHYUO", + "sc-eirqVv", + "sc-ellfGf", + "sc-euEtCV", + "sc-fFSPTT", + "sc-fHCHyC", + "sc-fIxmyt", + "sc-fKgJPI", + "sc-fWWYYk", + "sc-fXazdy", + "sc-fXgAZx", + "sc-fbIWvP", + "sc-fcmMJX", + "sc-fuISkM", + "sc-fujyAs", + "sc-gGLxEB", + "sc-gIvpjk", + "sc-gKAaRy", + "sc-gVFcvn", + "sc-gXfVKN", + "sc-giAqHp", + "sc-gsWcmt", + "sc-gstuGz", + "sc-gzcbmu", + "sc-hBMUJo", + "sc-hHEiqL", + "sc-hKFxyN", + "sc-hOPeYd", + "sc-hhIiOg", + "sc-hkeOVe", + "sc-hmbstg", + "sc-iBzEeX", + "sc-iCoGMd", + "sc-iIgjPs", + "sc-iJCRrE", + "sc-iNiQyp", + "sc-iemWCZ", + "sc-iqAclL", + "sc-irKDMX", + "sc-iwajpm", + "sc-jHNicF", + "sc-jHcXXw", + "sc-jNnpgg", + "sc-jOFryr", + "sc-jQAxuV", + "sc-jSFjdj", + "sc-jUfyBS", + "sc-jXcxbT", + "sc-jcwpoC", + "sc-jffHpj", + "sc-jlZJtj", + "sc-jtiXyc", + "sc-kEqXSa", + "sc-kLojOw", + "sc-kTCsyW", + "sc-kYPZxB", + "sc-kfYoZR", + "sc-khIgEk", + "sc-kizEQm", + "sc-lbVvki", + "sc-lmgQwP", + "sc-oeezt", + "sc-pNWdM", + "sc-xGAEC", + "scaling-strategy", + "scrollbar-container", + "search", + "search-and-nav-toggle", + "search-btn", + "search-icon", + "search-input", + "section", + "security-details", + "selected", + "selector-dropdowns", + "series-diagram", + "shape", + "shard", + "shard-group", + "shard-groups", + "shift-left", + "short", + "shorthand-flags", + "show", + "show-more", + "sidebar", + "sidebar--search", + "sidebar--search-field", + "sidebar-toggle", + "slack", + "sm", + "small", + "small-plus", + "solid", + "spbic", + "spinner", + "split", + "sql", + "st0", + "st1", + "st10", + "st11", + "st12", + "st13", + "st14", + "st15", + "st16", + "st17", + "st18", + "st19", + "st2", + "st20", + "st21", + "st3", + "st4", + "st5", + "st6", + "st7", + "st8", + "st9", + "state", + "storage-description", + "stream-of-tables", + "string", + "submit-wrapper", + "support", + "supported", + "tab-content", + "tab-error", + "tab-redirect", + "tab-success", + "tab-view-output", + "table-group", + "table-group-key", + "tabs", + "tabs-wrapper", + "tag", + "tags", + "tagset", + "telegraf", + "text", + "text-new", + "theme-switch", + "theme-switch-dark", + "theme-switch-light", + "third", + "three-quarters", + "timeline", + "timestamp", + "tip", + "title", + "title-tag", + "toggle-hamburger", + "toggle-icon", + "token", + "tooltip", + "top", + "topnav", + "topnav-left", + "topnav-right", + "trash-new", + "triangle", + "truncate", + "truncate-bottom", + "truncate-content", + "truncate-toggle", + "two", + "two-columns", + "two-thirds", + "ui-toggle", + "undefined", + "updated-in", + "url-trigger", + "username", + "users-duo", + "v1", + "v2", + "v3", + "v3-wayfinding-btn", + "v4", + "version", + "version-col", + "version-list", + "version-row", + "vertical", + "video", + "video-card", + "video-content", + "video-date", + "video-title", + "videos-wrapper", + "view-in-chronograf", + "visible", + "warn", + "warning", + "wayfinding", + "wayfinding-actions", + "wayfinding-content", + "wayfinding-content-info", + "wayfinding-wrapper", + "whitespace", + "widget", + "window-frame-units", + "window-hour", + "windows", + "wrench-nav", + "xsmall" + ], + "ids": [ + "--all-", + "--auth-duration", + "--auth0-client-id", + "--auth0-client-secret", + "--auth0-domain", + "--auth0-organizations", + "--basepath---p", + "--batch-size-", + "--blocks-", + "--bolt-path---b", + "--c-int-", + "--c-number-", + "--canned-path---c", + "--cert", + "--compact-series-file-", + "--compress-", + "--concurrency-", + "--conflicts-file-string-", + "--conflicts-file-string--1", + "--custom-auto-refresh", + "--custom-link-display_namelink_address", + "--database-db_name-", + "--database-db_name--1", + "--db-db_name-", + "--detailed-", + "--detailed--1", + "--detailed--2", + "--develop---d", + "--dir-path-", + "--dir-path--1", + "--end-timestamp-", + "--etcd-cert", + "--etcd-dial-timeout", + "--etcd-endpoints---e", + "--etcd-key", + "--etcd-password", + "--etcd-request-timeout", + "--etcd-root-ca", + "--etcd-username", + "--exact-", + "--exact--1", + "--filter-key-key_name-", + "--generic-api-url", + "--generic-auth-url", + "--generic-client-id", + "--generic-client-secret", + "--generic-domains", + "--generic-name", + "--generic-scopes", + "--generic-token-url", + "--github-client-id---i", + "--github-client-secret---s", + "--github-organization---o", + "--github-url", + "--google-client-id", + "--google-client-secret", + "--google-domains", + "--help---h", + "--heroku-client-id", + "--heroku-organization", + "--heroku-secret", + "--host", + "--host-page-disabled---h", + "--inactivity-duration", + "--index-", + "--influxdb-org", + "--influxdb-password", + "--influxdb-token", + "--influxdb-url", + "--influxdb-username", + "--kapacitor-password", + "--kapacitor-url", + "--kapacitor-username", + "--key", + "--log-level---l", + "--lponly-", + "--max-cache-size-", + "--max-log-file-size-", + "--measurement-filter-regular_expression-", + "--measurements-", + "--oauth-no-pkce", + "--out-export_dir-", + "--out-export_dir-or--out--", + "--path-string-", + "--pattern-regular-expressionwildcard-", + "--port", + "--public-url", + "--reporting-disabled---r", + "--resources-path", + "--retention-rp_name-", + "--retention-rp_name--", + "--rollup-string-", + "--schema-file-string-", + "--schema-file-string--1", + "--series-", + "--series-file-path-", + "--shard-shard_id-", + "--show-duplicates-", + "--start-timestamp-", + "--status-feed-url", + "--tag-key-filter-regular_expression-", + "--tag-keys-", + "--tag-value-filter-regular_expression-", + "--tag-value-series-", + "--tag-values-", + "--token-secret---t", + "--top-n-", + "--v-", + "--v--1", + "--v--2", + "--version---v", + "--vv-", + "--vvv-", + "--waldir-wal_dir-", + "-datadir-data_dir", + "-datadir-data_dir-1", + "-db-path-path-to-db", + "-db-path-string", + "-dir-storage_root", + "-measurement", + "-not--exists", + "-not--in", + "-not-exists-syntax", + "-not-in-examples", + "-not-in-syntax", + "-sanitize", + "-series-file-series_path", + "-skipverify", + "-url", + "-v", + "-waldir-wal_dir", + "1-chronografs-data-explorer", + "1-create-the-database", + "1-define-your-data-source", + "1-disable-existing-integrations", + "1-identify-the-leader-node", + "1-locate-your-desired-backup-file", + "1-provision-a-new-data-node", + "1-stop-influxdb", + "137", + "140", + "141", + "142", + "143", + "150", + "151", + "152", + "153", + "154", + "155", + "160", + "161", + "162", + "163", + "164", + "165", + "166", + "170", + "171", + "172", + "173", + "174", + "175", + "176", + "177", + "1x-api-compatibility-and-stability", + "1x-compatible-authorizations", + "1x-configuration-groups-not-in-27", + "2-create-a-two-hour-default-retention-policy", + "2-influx-cli", + "2-remove-all-_series-directories", + "2-replace-all-non-leader-nodes", + "2-replace-the-old-data-node-with-the-new-data-node", + "2-specify-a-time-range", + "2-stop-existing-influxdb-beta-instance", + "2-stop-your-chronograf-server", + "2003", + "2019-04-05", + "2019-05-02", + "2019-05-06-public-beta", + "2019-07-23-general-availability", + "2019-09-10-monitoring--alerts", + "2020-09-02", + "2020-9-25", + "20230907-597343", + "20230908-600131", + "20230911-604209", + "20230912-619813", + "20230914-628600", + "20230915-630658", + "20230922-650371", + "20231004-666907", + "20231024-711448", + "20231115-746129", + "20231117-750011", + "20231213-791734", + "20240111-824437", + "20240214-863513", + "20240227-883344", + "20240326-922145", + "20240418-955990", + "20240430-976585", + "20240605-1035562", + "20240717-1117630", + "20240819-1176644", + "20241024-1354148", + "20241217-1494922", + "20250212-1570743", + "20250508-1719206", + "21-provision-a-new-meta-node", + "22-remove-the-non-leader-meta-node", + "23-add-the-new-meta-node", + "24-confirm-the-meta-node-was-added", + "25-remove-and-replace-all-other-non-leader-meta-nodes", + "25826", + "2x-nightly-images", + "3-confirm-the-data-node-was-added", + "3-create-a-52-week-retention-policy", + "3-filter-your-data", + "3-optional-rename-existing-influxdb-binaries", + "3-remove-all-index-directories", + "3-replace-the-leader-node", + "3-replace-your-current-database-with-the-backup", + "31---kill-the-meta-process-on-the-leader-node", + "32---remove-and-replace-the-old-leader-node", + "3d-printing", + "4-check-the-copy-shard-status", + "4-create-the-continuous-query", + "4-install-the-desired-chronograf-version", + "4-move-existing-data-and-start-the-latest-influxdb", + "4-rebuild-the-tsi-index", + "4-yield-your-queried-data", + "4242", + "5-restart-influxdb", + "5-start-old-influxdb-beta-instance", + "5-start-the-chronograf-server", + "500_errors_24hyaml", + "500_errorstick", + "6-create-configuration-profiles-for-the-influxdb-cli", + "7-copy-all-resources-from-old-instance-to-the-new-one", + "8-set-up-integrations-to-point-to-new-instance", + "8086", + "8088", + "8089", + "8089-1", + "8091", + "9-load-historical-data-into-new-instance", + "_field", + "_measurement", + "_monitoring-bucket-schema", + "_monitoring-system-bucket", + "_tasks-bucket-schema", + "_tasks-system-bucket", + "_time", + "_value", + "a", + "a-bug-was-fixed-around-missing-fields-in-the-derivative-node", + "a-configure-old-profile", + "a-dbrp-combination-can-only-be-mapped-to-a-single-bucket", + "a-destination-bucket", + "a-hypothetical-installation", + "a-note-on-rest", + "a-note-on-udpip-buffer-sizes", + "a-note-on-udpip-os-buffer-sizes", + "a-query-that-contains-an-error", + "a-real-world-example", + "a-request-with-invalid-authentication-credentials", + "a-required-identifier-is-missing", + "a-source-bucket", + "a-string-literal-is-used-instead-of-an-identifier", + "a-successful-request-that-returns-an-error", + "a-successful-request-that-returns-data", + "a-successful-write", + "a-valid-license-is-required", + "a-where-clause-query-unexpectedly-returns-no-data", + "about-chronograf-organizations", + "about-the-project", + "above-header-type-conversion", + "abs", + "absolute-time", + "abstract-syntax-tree-ast", + "access-authentication-and-authorization", + "access-billing-details", + "access-community-plugins-from-github", + "access-log-path", + "access-log-path--", + "access-log-status-filters", + "access-log-status-filters--", + "access-the-admin-ui", + "access-the-cloud-dedicated-admin-ui", + "access-the-cluster", + "access-your-operational-dashboard", + "accessible-graph-color-options", + "accessing-members-of-dynamic-types", + "accessing-values", + "accessing-values-in-string-templates", + "account-for-missing-non-group-key-values", + "account-management", + "account-management-1", + "acos", + "acosh", + "acquire-duration", + "action", + "actions", + "activate-a-commercial-license", + "activate-a-license", + "activate-a-trial-or-at-home-license", + "activate-a-v1-authorization", + "activate-an-api-token", + "active", + "actively-develop-and-extend-templates", + "activemq", + "ad-hoc-polymorphism", + "adaptive-zoom", + "add-a-cell", + "add-a-column-to-the-group-key", + "add-a-custom-telegraf-configuration-to-influxdb", + "add-a-data-node-to-a-cluster", + "add-a-data-node-to-a-cluster-using-a-remote-meta-node", + "add-a-data-source-cell", + "add-a-duration-to-a-time-value", + "add-a-duration-to-a-timestamp", + "add-a-kapacitor-instance", + "add-a-label-to-a-check", + "add-a-label-to-notification-endpoint", + "add-a-label-to-notification-rules", + "add-a-member", + "add-a-member-to-an-organization", + "add-a-member-to-an-organization-and-make-them-an-owner", + "add-a-member-to-an-organization-using-the-influx-cli", + "add-a-meta-node-to-a-cluster", + "add-a-meta-node-to-a-cluster-using-a-remote-meta-node", + "add-a-note", + "add-a-note-to-your-dashboard", + "add-a-pagerduty-deduplication-key-to-output-data", + "add-a-passive-data-node-to-a-cluster", + "add-a-processing-engine-plugin", + "add-a-secret", + "add-a-secret-using-the-influx-cli", + "add-a-secret-using-the-influxdb-api", + "add-a-secret-using-the-influxdb-cloud-ui", + "add-a-shared-secret-in-your-influxdb-configuration-file", + "add-a-task-cell", + "add-a-time-zone-offset-to-a-timestamp-without-a-specified-timezone", + "add-a-token-to-a-cli-request", + "add-a-user", + "add-a-user-to-a-role", + "add-a-validation-cell", + "add-a-visualization-cell", + "add-ability-to-share-notebooks", + "add-an-action-cell", + "add-an-alert-cell", + "add-an-arbitrary-tag", + "add-an-output-to-bucket-cell", + "add-and-subtract-time-values", + "add-and-use-event-handlers", + "add-authorizations-for-external-clients", + "add-auto-refresh-functionality-to-notebooks", + "add-data-to-your-dashboard", + "add-dns-entries", + "add-dns-entries-for-each-of-your-servers", + "add-example-plugins", + "add-existing-resources-to-the-github-repository", + "add-generic-error-counters-to-every-node-type", + "add-labels-to-a-node", + "add-labels-to-dashboard-items", + "add-n-hours-to-a-time", + "add-new-columns-and-preserve-existing-columns", + "add-new-webhooks", + "add-node-to-existing-cluster", + "add-one-month-to-yesterday", + "add-or-update-a-check-description", + "add-or-update-your-contact-information", + "add-or-update-your-payment-method", + "add-outputsfile-to-read-to-a-file-or-stdout", + "add-parser-information-to-your-telegraf-configuration", + "add-permissions-to-a-role-for-a-specific-database", + "add-permissions-to-a-role-for-all-databases", + "add-queries-to-dashboards", + "add-s2-cell-ids-to-existing-geotemporal-data", + "add-sample-data", + "add-sample-data-buckets-to-notebooks-ui", + "add-sample-data-with-community-template", + "add-scaled-mixed-duration-to-a-time", + "add-secrets", + "add-single-quotes-in-query", + "add-single-quotes-in-variable-definition", + "add-six-hours-to-a-relative-duration", + "add-six-hours-to-a-timestamp", + "add-tags", + "add-telegraf-plugins", + "add-the-handler", + "add-times-to-your-aggregates", + "add-token-permissions", + "add-users-that-need-administrative-access-to-your-influxdb-cluster", + "add-variables", + "add-your-task", + "addable-constraint", + "added-support-for-nodeaffinity-at-the-per-component-level", + "adding-a-custom-field", + "adding-a-kapacitor-connection-in-chronograf", + "adding-tags", + "addition", + "additional-appinstance-parameters", + "additional-features", + "additional-naming-guidelines", + "additional-updates", + "additional-updates-1", + "additionalinfo", + "additive-changes", + "addr", + "addremovenode", + "adjust-performance", + "adjustable-service-quotas", + "admin", + "admin-section", + "admin-section-is-no-longer-required", + "admin-user-group", + "admin-user-management", + "admin-users", + "administration", + "administration-1", + "administrative-ui", + "admins-roleadmin", + "advance-period", + "advance-period--30m", + "advanced-controls", + "advanced-examples", + "advanced-group-by-time-syntax", + "advanced-kapacitor-usage", + "advanced-syntax", + "advanced-syntax-1", + "advanced-syntax-10", + "advanced-syntax-11", + "advanced-syntax-12", + "advanced-syntax-13", + "advanced-syntax-14", + "advanced-syntax-15", + "advanced-syntax-16", + "advanced-syntax-17", + "advanced-syntax-18", + "advanced-syntax-19", + "advanced-syntax-2", + "advanced-syntax-20", + "advanced-syntax-21", + "advanced-syntax-22", + "advanced-syntax-23", + "advanced-syntax-3", + "advanced-syntax-4", + "advanced-syntax-5", + "advanced-syntax-6", + "advanced-syntax-7", + "advanced-syntax-8", + "advanced-syntax-9", + "advanced-template-variable-usage", + "advanced-trigger-configuration", + "advantages", + "ae-enterprise-only", + "aerospike", + "agent", + "agent-1", + "agent-2", + "agent-3", + "agent-4", + "agent-5", + "agent-6", + "agent-configuration", + "aggr_cpu_alertsyaml", + "aggregate", + "aggregate-and-selector-functions", + "aggregate-by-calendar-months-and-years", + "aggregate-by-time-based-intervals", + "aggregate-by-week", + "aggregate-data", + "aggregate-data-with-influxql", + "aggregate-data-with-sql", + "aggregate-examples", + "aggregate-fields-by-groups", + "aggregate-function-characteristics", + "aggregate-functions", + "aggregate-gross-and-net-profit", + "aggregate-multiple-columns", + "aggregate-or-apply-selector-functions-to-data", + "aggregate-or-select-data-based-on-type", + "aggregate-or-select-specific-data", + "aggregate-over-time", + "aggregate-package", + "aggregate-selectors", + "aggregate-windowed-data", + "aggregates", + "aggregatewindow-function", + "aggregatewindow-helper-function", + "aggregation", + "aggregation-functions", + "aggregations", + "aggregator", + "aggregator-basicstats", + "aggregator-configuration", + "aggregator-configuration-examples", + "aggregator-derivative", + "aggregator-final", + "aggregator-histogram", + "aggregator-merge", + "aggregator-minmax", + "aggregator-plugin", + "aggregator-plugin-updates", + "aggregator-plugin-updates-1", + "aggregator-plugin-updates-2", + "aggregator-plugins", + "aggregator-plugins-1", + "aggregator-quantile", + "aggregator-starlark", + "aggregator-valuecounter", + "aggregators", + "air-gapped-deployment", + "air-sensor-sample-data", + "alert", + "alert-blocks", + "alert-deduplication", + "alert-endpoint-configurations", + "alert-event-data", + "alert-management", + "alert-on-data", + "alert-template", + "alert-template-file", + "alert-template-file-1", + "alert-templates", + "alert-when-metrics-stop-reporting", + "alerta", + "alerta-package", + "alerting", + "alerting-process", + "alerts-and-ids", + "alerts_inhibited", + "alerts_triggered", + "algolia-search-input", + "alias", + "alias-queried-fields-and-tags", + "aliases", + "aliases-1", + "aliases-2", + "aliases-3", + "align", + "align-fields-into-rows-based-on-time", + "align-sample-data-to-now", + "aligngroup", + "alignto", + "aliyuncms", + "all", + "all-access-api-token", + "all-access-token", + "all-active", + "all-duration-seconds", + "all-functions", + "all-new-users-are-superadmins-configuration-option", + "alloc", + "alloc_bytes", + "allow-grpchttp2", + "allow-out-of-order-writes", + "allow-tag-column-values-to-overwrite-parsed-metadata", + "allow_no_match-optional", + "already-killed", + "alter-retention-policy", + "altering-continuous-queries", + "always-provide-a-time-format-when-using-custom-partitioning", + "amazon-athena-data-source-name", + "amazon-rds-connection-credentials", + "amazon-web-services-aws", + "ambiguous-reference-to-unqualified-field", + "amd_rocm_smi", + "amon", + "amqp", + "amqp_consumer", + "an-example", + "an-incorrectly-formatted-query", + "an-influxql-keyword-is-used-as-an-unquoted-identifier", + "anaisdg-package", + "analytical-functions", + "analyze-a-query-plan", + "analyze-a-query-plan-for-leading-edge-data", + "analyze-actual-query-cost", + "analyze-branch-structures", + "analyze-go-runtime-profiles", + "analyze-logs-with-chronograf", + "analyze-queries", + "analyze-the-go-runtime-trace", + "analyze-your-queries", + "and", + "and-operator-in-the-where-clause", + "annotated-csv", + "annotation-rows", + "annotation-shorthand", + "annotations", + "annotations-example", + "announcement-expiration", + "announcer", + "annual-plan", + "anomalydetection-package", + "another-example", + "anti-entropy", + "anti-entropy-ae-settings", + "anti-entropy-log-messages", + "anti-entropy-service-disabled-by-default", + "apache", + "apache-arrow-flight-rpc-clients", + "apcupsd", + "api", + "api-and-client-library-differences", + "api-client-libraries", + "api-error-response-messages", + "api-error-responses", + "api-examples", + "api-fix", + "api-invokable-scripts", + "api-key", + "api-reference", + "api-request-duration-seconds", + "api-requests-total", + "api-token-types", + "api-updates", + "api-updates-1", + "apikey", + "apiv2-retentionrules-syntax", + "apiv2buckets-http-endpoint", + "apiv2delete-http-endpoint", + "apiv2query-endpoint-cant-query-influxdb-3", + "apiv2query-http-endpoint", + "apiv2query-not-supported", + "apiv2write-http-endpoint", + "apiv2write-parameters", + "app-key", + "appinstance-component-schema", + "appinstance-image-override-bug-fix", + "appinstance-resource", + "appkey", + "applicable-use-cases", + "application-and-service-security", + "application_insights", + "applications", + "apply-a-stack-that-has-associated-templates", + "apply-a-template-but-skip-resources", + "apply-a-template-from-a-file", + "apply-a-template-from-a-url", + "apply-a-template-from-stdin", + "apply-a-template-to-a-stack", + "apply-abs-to-a-field", + "apply-abs-to-each-field", + "apply-abs-to-time-windows-grouped-by-time", + "apply-acos-to-a-field", + "apply-acos-to-each-field", + "apply-acos-to-time-windows-grouped-by-time", + "apply-all-templates-in-a-directory", + "apply-an-aggregate-function-to-an-aggregated-result-set", + "apply-an-ldap-configuration-from-a-file", + "apply-an-ldap-configuration-from-stdin", + "apply-and-manage-templates-using-the-influx-cli", + "apply-asin-to-a-field", + "apply-asin-to-each-field", + "apply-asin-to-time-windows-grouped-by-time", + "apply-atan-to-a-field", + "apply-atan-to-each-field", + "apply-atan-to-time-windows-grouped-by-time", + "apply-atan2-to-a-field-divided-by-another-field", + "apply-atan2-to-each-field-divided-by-a-numeric-value", + "apply-atan2-to-time-windows-grouped-by-time", + "apply-ceil-to-a-field", + "apply-ceil-to-each-field", + "apply-ceil-to-time-windows-grouped-by-time", + "apply-cos-to-a-field", + "apply-cos-to-each-field", + "apply-cos-to-time-windows-grouped-by-time", + "apply-cumulative_sum-to-a-field", + "apply-cumulative_sum-to-each-field", + "apply-cumulative_sum-to-field-keys-that-match-a-regular-expression", + "apply-cumulative_sum-to-time-windows-grouped-by-time", + "apply-derivative-to-a-field-to-calculate-the-per-5-minute-change", + "apply-derivative-to-a-field-to-calculate-the-per-second-change", + "apply-derivative-to-each-field", + "apply-derivative-to-field-keys-that-match-a-regular-expression", + "apply-derivative-to-time-windows-grouped-by-time", + "apply-difference-to-a-field", + "apply-difference-to-each-field", + "apply-difference-to-field-keys-that-match-a-regular-expression", + "apply-difference-to-time-windows-grouped-by-time", + "apply-elapsed-to-a-field-and-return-elapsed-time-in-nanoseconds", + "apply-elapsed-to-a-field-and-return-elapsed-time-in-seconds", + "apply-elapsed-to-each-field", + "apply-elapsed-to-field-keys-that-match-a-regular-expression", + "apply-exp-to-a-field", + "apply-exp-to-each-field", + "apply-exp-to-time-windows-grouped-by-time", + "apply-floor-to-a-field", + "apply-floor-to-each-field", + "apply-floor-to-time-windows-grouped-by-time", + "apply-ln-to-a-field", + "apply-ln-to-each-field", + "apply-ln-to-time-windows-grouped-by-time", + "apply-log-to-a-field-with-a-base-of-3", + "apply-log-to-each-field-with-a-base-of-5", + "apply-log-to-time-windows-grouped-by-time", + "apply-log10-to-a-field", + "apply-log10-to-each-field", + "apply-log10-to-time-windows-grouped-by-time", + "apply-log2-to-a-field", + "apply-log2-to-each-field", + "apply-log2-to-time-windows-grouped-by-time", + "apply-moving_average-to-a-field", + "apply-moving_average-to-each-field", + "apply-moving_average-to-field-keys-that-match-a-regular-expression", + "apply-moving_average-to-time-windows-grouped-by-time", + "apply-multiple-template-files-together", + "apply-non_negative_derivative-to-a-field-to-calculate-the-per-5-minute-change", + "apply-non_negative_derivative-to-a-field-to-calculate-the-per-second-change", + "apply-non_negative_derivative-to-each-field", + "apply-non_negative_derivative-to-field-keys-that-match-a-regular-expression", + "apply-non_negative_derivative-to-time-windows-grouped-by-time", + "apply-non_negative_difference-to-a-field", + "apply-non_negative_difference-to-each-field", + "apply-non_negative_difference-to-field-keys-that-match-a-regular-expression", + "apply-non_negative_difference-to-time-windows-grouped-by-time", + "apply-pow-to-a-field-with-a-power-of-3", + "apply-pow-to-each-field-with-a-power-of-5", + "apply-pow-to-time-windows-grouped-by-time", + "apply-restrictions-to-a-series-defined-by-multiple-tags", + "apply-round-to-a-field", + "apply-round-to-each-field", + "apply-round-to-time-windows-grouped-by-time", + "apply-sin-to-a-field", + "apply-sin-to-each-field", + "apply-sin-to-time-windows-grouped-by-time", + "apply-sqrt-to-a-field", + "apply-sqrt-to-each-field", + "apply-sqrt-to-time-windows-grouped-by-time", + "apply-tan-to-a-field", + "apply-tan-to-each-field", + "apply-tan-to-time-windows-grouped-by-time", + "apply-template-updates-across-multiple-influxdb-instances", + "apply-templates", + "apply-templates-from-files-and-urls", + "apply-templates-from-multiple-sources", + "apply-templates-to-an-existing-stack", + "apply-the-chande-momentum-oscillator-to-input-data", + "apply-the-changes-to-your-cluster", + "apply-the-template", + "apply-the-updated-image", + "apply-time-bounds-to-the-outer-query-to-improve-performance", + "apply-updates-from-source-controlled-templates", + "apply-your-changes", + "apply-your-configuration-changes", + "approx_distinct", + "approx_median", + "approx_percentile_cont", + "approx_percentile_cont_with_weight", + "approximate-aggregate-functions", + "approximate-functions", + "approximately-filter-geotemporal-data-by-region", + "apps-pre-created-dashboards", + "april-2021", + "april-2022", + "april-2025", + "architectural-overview", + "architecture", + "architecture-overview", + "arduino", + "arduino-onboarding", + "are-you-currently-limited-by-series-cardinality", + "are-you-reliant-on-flux-queries-and-flux-tasks", + "are-you-using-continuous-queries-cqs", + "are-you-using-docker", + "argument", + "arguments", + "arguments-1", + "arguments-10", + "arguments-11", + "arguments-12", + "arguments-13", + "arguments-14", + "arguments-15", + "arguments-16", + "arguments-17", + "arguments-18", + "arguments-19", + "arguments-2", + "arguments-20", + "arguments-21", + "arguments-22", + "arguments-23", + "arguments-24", + "arguments-25", + "arguments-26", + "arguments-27", + "arguments-28", + "arguments-29", + "arguments-3", + "arguments-30", + "arguments-31", + "arguments-32", + "arguments-33", + "arguments-34", + "arguments-35", + "arguments-36", + "arguments-37", + "arguments-38", + "arguments-39", + "arguments-4", + "arguments-5", + "arguments-6", + "arguments-7", + "arguments-8", + "arguments-9", + "arithmetic-operators", + "arm64", + "arr", + "array", + "array-literals", + "array-of-objects", + "array-of-scalar-values", + "array-package", + "array-syntax", + "array-types", + "array_agg", + "arrays", + "arrays-and-objects", + "arrow-flight-sql", + "arrow_cast", + "arrow_typeof", + "as", + "as-clause", + "ascii", + "asin", + "asinh", + "ask-or-answer-support-questions", + "assets-path", + "assign-a-new-aggregate-timestamp", + "assign-a-user-to-a-different-group", + "assign-a-user-to-the-new-role", + "assign-custom-states-to-data", + "assign-users-to-a-role", + "assignment-and-scope", + "assignment-operators", + "associate-values-to-tags-by-time", + "at-least-three-meta-nodes", + "at-time-zone", + "atan", + "atan2", + "atanh", + "athena-to-flux-data-type-conversion", + "attempt-to-write-a-string-to-a-field-that-previously-accepted-floats", + "attributes", + "auditor-user-group", + "august-2021", + "august-2022", + "aurora", + "auth-enabled", + "auth-enabled--false", + "auth-file", + "auth-file--etccollectdauth_file", + "auth0", + "auth0-organizations-optional", + "auth0-specific-oauth-20-authentication-flags", + "auth0-specific-oauth-20-authentication-options", + "authenticate-api-requests", + "authenticate-requests", + "authenticate-requests-to-influxdb-enterprise", + "authenticate-telegraf-requests-to-influxdb", + "authenticate-using-jwt-tokens", + "authenticate-with-a-token", + "authenticate-with-a-token-scheme", + "authenticate-with-a-username-and-password", + "authenticate-with-a-username-and-password-scheme", + "authenticate-with-basic-authentication", + "authenticate-with-cli-flags", + "authenticate-with-credentials-in-the-influx-shell", + "authenticate-with-environment-variables", + "authenticate-with-jwt", + "authenticate-with-kapacitor", + "authenticate-with-query-parameters-in-the-url-or-request-body", + "authenticate-with-the-cli", + "authenticate-with-the-influxdb-api", + "authenticate-with-the-kapacitor-api", + "authenticate-with-the-kapacitor-cli", + "authenticate-with-the-token-scheme", + "authenticate-with-username-and-password", + "authenticate-with-your-cluster", + "authenticate-your-connection-to-influxdb", + "authentication", + "authentication-and-authorization", + "authentication-and-authorization-auth", + "authentication-and-authorization-http-errors", + "authentication-and-authorization-in-influxdb", + "authentication-and-shared-secret", + "authentication-credentials", + "authentication-option-flags", + "authentication-options", + "authfail", + "authorization", + "auto-generate-buckets-on-write", + "auto-repair-missing", + "autogenerate-a-bucket-and-dbrp-mapping", + "autointerval", + "automate-deployments-with-gitops-and-stacks", + "automate-object-synchronization-to-an-external-s3-compatible-bucket", + "automate-processing-with-influxdb-tasks", + "automate-the-creation-of-a-stack-for-each-folder", + "automate-writing-data-from-influxdb-oss-to-influxdb-cloud", + "automated-setup-with-docker", + "automatic-dbrp-mapping", + "automatically-configure-telegraf", + "automatically-create-dbrp-mappings-on-write", + "automatically-downsampling-a-database-with-backreferencing", + "automatically-downsampling-data", + "automatically-downsampling-data-and-configuring-cq-time-boundaries", + "automatically-downsampling-data-into-another-retention-policy", + "automatically-refresh-a-dashboard", + "automating-queries-with-the-into-clause", + "auxiliary-fields", + "available-discoverers", + "available-event-handlers", + "available-nodes", + "available-operating-system-container-and-platform-support", + "available-profilers", + "available-roles", + "available-subcommands", + "available-user-groups", + "available-webhooks", + "available-with-influxdb-oss-2x-only", + "avatar-url", + "avatar_url", + "average-rate-of-change-per-window-of-time", + "avg", + "avg_exec_time_ns", + "avoid-bins-in-time-zone-discontinuities", + "avoid-bins-in-time-zone-discontinuities-1", + "avoid-data-loss", + "avoid-duplicate-names-for-tags-and-fields", + "avoid-encoding-data-in-measurements-and-keys", + "avoid-features-that-are-not-included-with-influxdb-cloud-dedicated", + "avoid-keywords-and-special-characters", + "avoid-keywords-and-special-characters-in-keys", + "avoid-name-collisions-with-multiple-subscriptions", + "avoid-over-partitioning", + "avoid-processing-filters-inline", + "avoid-putting-more-than-one-piece-of-information-in-one-tag", + "avoid-reserved-keywords-in-tag-and-field-keys", + "avoid-sending-duplicate-data", + "avoid-short-window-durations", + "avoid-sparse-schemas", + "avoid-storing-tokens-in-telegrafconf", + "avoid-the-same-name-for-a-tag-and-a-field", + "avoid-too-many-series", + "avoid-too-many-tags", + "avoid-using-apiv2query", + "avoid-using-apiv2query-1", + "avoid-wide-schemas", + "avro", + "aws", + "aws-access-key-id", + "aws-allow-http", + "aws-and-microsoft-regions", + "aws-athena-connection-strings", + "aws-default-region", + "aws-endpoint", + "aws-lambda-via-cloudformation-template", + "aws-recommendations", + "aws-secret-access-key", + "aws-session-token", + "aws-skip-signature", + "aws_ec2", + "awsalarms", + "azure-storage-access-key", + "azure-storage-account", + "azure_data_explorer", + "azure_monitor", + "azure_storage_queue", + "b", + "b-configure-new-profile", + "back-up-a-database", + "back-up-a-database-and-all-retention-policies", + "back-up-a-database-from-a-remote-influxdb-instance", + "back-up-a-database-with-a-specific-retention-policy", + "back-up-a-specific-bucket-to-a-directory", + "back-up-a-specific-database", + "back-up-a-specific-retention-policy", + "back-up-a-specific-retention-policy-legacy", + "back-up-a-specific-shard", + "back-up-a-specific-shard-legacy", + "back-up-a-specific-time-range", + "back-up-a-specific-time-range-legacy", + "back-up-all-data-from-a-remote-influxdb-instance", + "back-up-all-data-to-a-directory", + "back-up-all-data-to-the-current-working-directory", + "back-up-all-databases", + "back-up-and-restore", + "back-up-and-restore-between-influxdb-enterprise-and-oss", + "back-up-and-restore-data", + "back-up-and-restore-your-cluster", + "back-up-data", + "back-up-data-from-a-specific-time-range", + "back-up-data-from-a-specific-time-to-now", + "back-up-data-from-a-specific-time-to-now-legacy", + "back-up-data-with-the-influx-cli", + "back-up-meta-data-only", + "back-up-storage", + "back-up-your-cluster", + "backfill", + "backfilling-results-for-older-data", + "background-information", + "backup", + "backup-a-specific-shard", + "backup-after-compaction", + "backup-and-restore", + "backup-and-restore-performance", + "backup-and-restore-requirements", + "backup-and-restore-utilities", + "backup-configuration-and-data", + "backup-data-from-a-specific-time-range", + "backup-enhancements", + "backup-examples", + "backup-flags", + "backup-formats", + "backup-on-write", + "backup-processes", + "backup-strategies", + "backup-utility", + "backups", + "backward-compatible-flux-template-variables", + "backwards-compatibility", + "bad-keys-schema", + "bad-measurements-schema", + "bad-tags-schema", + "balance-time-range-and-data-precision", + "balancer", + "band", + "band-behavior", + "band-controls", + "bar-graph", + "bar-graph-controls", + "bar-graph-example", + "barrier", + "barrier-idle-time-and-window-period", + "basic-aggregate-query", + "basic-arithmetic", + "basic-auth", + "basic-authentication", + "basic-authentication-scheme", + "basic-calculations-within-a-query", + "basic-examples", + "basic-flux-query", + "basic-flux-syntax", + "basic-function-examples", + "basic-group-by-time-syntax", + "basic-matching", + "basic-mathematic-operations", + "basic-parsing", + "basic-query-examples", + "basic-query-structure", + "basic-regex-comparison-syntax", + "basic-selector-query", + "basic-syntax", + "basic-syntax-1", + "basic-syntax-10", + "basic-syntax-11", + "basic-syntax-12", + "basic-syntax-13", + "basic-syntax-14", + "basic-syntax-15", + "basic-syntax-16", + "basic-syntax-17", + "basic-syntax-18", + "basic-syntax-19", + "basic-syntax-2", + "basic-syntax-20", + "basic-syntax-21", + "basic-syntax-22", + "basic-syntax-23", + "basic-syntax-24", + "basic-syntax-25", + "basic-syntax-26", + "basic-syntax-27", + "basic-syntax-28", + "basic-syntax-29", + "basic-syntax-3", + "basic-syntax-30", + "basic-syntax-31", + "basic-syntax-4", + "basic-syntax-5", + "basic-syntax-6", + "basic-syntax-7", + "basic-syntax-8", + "basic-syntax-9", + "basic-telegraf-usage", + "basic-testcase-for-addition", + "basic-transformation", + "basic-types", + "basicstats", + "batch", + "batch-1", + "batch-field-processing-with-multi-node-selection", + "batch-format", + "batch-incoming-data", + "batch-pending", + "batch-pending--10", + "batch-pending--10-1", + "batch-pending--10-2", + "batch-pending--5", + "batch-pending-1", + "batch-pending-2", + "batch-pending-3", + "batch-size", + "batch-size--1000", + "batch-size--5000", + "batch-size--5000-1", + "batch-size--5000-2", + "batch-size-1", + "batch-size-2", + "batch-size-3", + "batch-size-4", + "batch-size-is-too-large", + "batch-timeout", + "batch-timeout--10s", + "batch-timeout--1s", + "batch-timeout--1s-1", + "batch-timeout--1s-2", + "batch-timeout-1", + "batch-timeout-2", + "batch-timeout-3", + "batch-writes", + "batch-writes-for-optimal-performance", + "batch-writing", + "batches-work-but-streams-do-not-why", + "batchsize", + "bcache", + "bcrypt", + "beanstalkd", + "beat", + "before-upgrading-to-influxdb-111", + "before-you-begin", + "before-you-migrate", + "before-you-start", + "behavior-of-processors-and-aggregators-when-used-together", + "best-practices", + "best-practices-for-writing-data", + "beta-feedback-channels", + "between", + "between-operator-in-the-where-clause", + "beware-of-infinite-loops", + "bigbluebutton", + "bigpanda", + "bigpanda-package", + "bigquery", + "bigquery-authentication-parameters", + "bigquery-credential-url-parameter", + "bigquery-credential-url-parameter-1", + "bigquery-data-source-name", + "bigtable-package", + "billing-and-usage", + "billing-and-usage-1", + "billing-cycle", + "bin", + "bin-helper-functions", + "binary", + "binary-string-functions", + "bind", + "bind-a-parameter-in-the-where-clause-to-a-numerical-field-value", + "bind-a-parameter-in-the-where-clause-to-specific-tag-value", + "bind-address", + "bind-address--1270018088", + "bind-address--2003", + "bind-address--25826", + "bind-address--4242", + "bind-address--8086", + "bind-address--8089", + "bind-address-1", + "bind-parameters", + "bind-socket", + "bind-socket--varruninfluxdbsock", + "bind-to-a-remote-meta-node", + "bind-two-parameters-in-the-where-clause-to-a-specific-tag-value-and-numerical-field-value", + "bins", + "bird-migration-sample-data", + "bit_and", + "bit_length", + "bit_or", + "bit_xor", + "bitcoin-price-data", + "bitcoin-sample-data", + "bitwise-and", + "bitwise-exclusive-or", + "bitwise-not", + "bitwise-operators", + "bitwise-or", + "bitwise-package", + "bitwise-shift-left", + "bitwise-shift-right", + "bitwise-xor", + "blacklist-http-get-or-post-operations-from-specific-cidrs", + "block", + "block-types", + "blocks", + "body", + "boilerplate-for-the-influxdb-go-client-library", + "bolt-path", + "boltdb-and-mmap-btrees", + "boltdb-statistics", + "bond", + "bonitoo-io-package", + "book", + "bool", + "bool-type-handling", + "bool_and", + "bool_or", + "boolean", + "boolean-field-value-examples", + "boolean-literals", + "boolean-package", + "boolean-syntax", + "boolean-syntax-for-writes-and-queries", + "boolean-types", + "booleans", + "bootstrap-your-application", + "boringcrypto-cryptography-library", + "bottom", + "bottom-and-a-tag-key-with-fewer-than-n-tag-values", + "bottom-tags-and-the-into-clause", + "bottom-with-a-group-by-time-clause", + "boundaries-package", + "box", + "bracket-notation", + "breaking-change", + "breaking-changes", + "breaking-changes-1", + "breaking-changes-10", + "breaking-changes-11", + "breaking-changes-12", + "breaking-changes-13", + "breaking-changes-14", + "breaking-changes-15", + "breaking-changes-16", + "breaking-changes-17", + "breaking-changes-18", + "breaking-changes-19", + "breaking-changes-2", + "breaking-changes-20", + "breaking-changes-21", + "breaking-changes-22", + "breaking-changes-23", + "breaking-changes-24", + "breaking-changes-25", + "breaking-changes-26", + "breaking-changes-27", + "breaking-changes-28", + "breaking-changes-29", + "breaking-changes-3", + "breaking-changes-4", + "breaking-changes-5", + "breaking-changes-6", + "breaking-changes-7", + "breaking-changes-8", + "breaking-changes-9", + "broker", + "brokers", + "browse-plugin-examples", + "browser-support", + "bsddarwin", + "btrim", + "buck_hash_sys_bytes", + "bucket", + "bucket-limits", + "bucket-management-with-influxql-not-supported", + "bucket-measurement-number", + "bucket-name-syntax", + "bucket-naming-examples", + "bucket-naming-restrictions", + "bucket-not-found", + "bucket-retention-period", + "bucket-schema", + "bucket-series-number", + "bucket-service-new-call-total", + "bucket-service-new-duration", + "bucket-service-new-error-total", + "bucketid", + "buckets", + "buckets-api", + "buckets-total", + "buffer", + "buffer-mem-limit-mb", + "bug-fixes", + "bug-fixes-1", + "bug-fixes-10", + "bug-fixes-100", + "bug-fixes-101", + "bug-fixes-102", + "bug-fixes-103", + "bug-fixes-104", + "bug-fixes-105", + "bug-fixes-106", + "bug-fixes-107", + "bug-fixes-108", + "bug-fixes-109", + "bug-fixes-11", + "bug-fixes-110", + "bug-fixes-111", + "bug-fixes-112", + "bug-fixes-113", + "bug-fixes-114", + "bug-fixes-115", + "bug-fixes-116", + "bug-fixes-117", + "bug-fixes-118", + "bug-fixes-119", + "bug-fixes-12", + "bug-fixes-120", + "bug-fixes-121", + "bug-fixes-122", + "bug-fixes-123", + "bug-fixes-124", + "bug-fixes-125", + "bug-fixes-126", + "bug-fixes-127", + "bug-fixes-128", + "bug-fixes-129", + "bug-fixes-13", + "bug-fixes-130", + "bug-fixes-131", + "bug-fixes-132", + "bug-fixes-133", + "bug-fixes-134", + "bug-fixes-135", + "bug-fixes-136", + "bug-fixes-137", + "bug-fixes-138", + "bug-fixes-139", + "bug-fixes-14", + "bug-fixes-140", + "bug-fixes-141", + "bug-fixes-142", + "bug-fixes-143", + "bug-fixes-144", + "bug-fixes-145", + "bug-fixes-146", + "bug-fixes-147", + "bug-fixes-148", + "bug-fixes-149", + "bug-fixes-15", + "bug-fixes-150", + "bug-fixes-151", + "bug-fixes-152", + "bug-fixes-153", + "bug-fixes-154", + "bug-fixes-155", + "bug-fixes-156", + "bug-fixes-157", + "bug-fixes-158", + "bug-fixes-159", + "bug-fixes-16", + "bug-fixes-160", + "bug-fixes-161", + "bug-fixes-162", + "bug-fixes-163", + "bug-fixes-164", + "bug-fixes-165", + "bug-fixes-166", + "bug-fixes-167", + "bug-fixes-168", + "bug-fixes-169", + "bug-fixes-17", + "bug-fixes-170", + "bug-fixes-171", + "bug-fixes-172", + "bug-fixes-173", + "bug-fixes-174", + "bug-fixes-175", + "bug-fixes-176", + "bug-fixes-177", + "bug-fixes-178", + "bug-fixes-179", + "bug-fixes-18", + "bug-fixes-180", + "bug-fixes-181", + "bug-fixes-182", + "bug-fixes-183", + "bug-fixes-184", + "bug-fixes-185", + "bug-fixes-186", + "bug-fixes-187", + "bug-fixes-188", + "bug-fixes-189", + "bug-fixes-19", + "bug-fixes-190", + "bug-fixes-191", + "bug-fixes-192", + "bug-fixes-193", + "bug-fixes-194", + "bug-fixes-195", + "bug-fixes-196", + "bug-fixes-197", + "bug-fixes-198", + "bug-fixes-199", + "bug-fixes-2", + "bug-fixes-20", + "bug-fixes-200", + "bug-fixes-201", + "bug-fixes-202", + "bug-fixes-203", + "bug-fixes-204", + "bug-fixes-205", + "bug-fixes-206", + "bug-fixes-207", + "bug-fixes-208", + "bug-fixes-209", + "bug-fixes-21", + "bug-fixes-210", + "bug-fixes-211", + "bug-fixes-212", + "bug-fixes-213", + "bug-fixes-214", + "bug-fixes-215", + "bug-fixes-216", + "bug-fixes-217", + "bug-fixes-218", + "bug-fixes-219", + "bug-fixes-22", + "bug-fixes-220", + "bug-fixes-221", + "bug-fixes-222", + "bug-fixes-223", + "bug-fixes-224", + "bug-fixes-225", + "bug-fixes-226", + "bug-fixes-227", + "bug-fixes-228", + "bug-fixes-229", + "bug-fixes-23", + "bug-fixes-230", + "bug-fixes-231", + "bug-fixes-232", + "bug-fixes-233", + "bug-fixes-24", + "bug-fixes-25", + "bug-fixes-26", + "bug-fixes-27", + "bug-fixes-28", + "bug-fixes-29", + "bug-fixes-3", + "bug-fixes-30", + "bug-fixes-31", + "bug-fixes-32", + "bug-fixes-33", + "bug-fixes-34", + "bug-fixes-35", + "bug-fixes-36", + "bug-fixes-37", + "bug-fixes-38", + "bug-fixes-39", + "bug-fixes-4", + "bug-fixes-40", + "bug-fixes-41", + "bug-fixes-42", + "bug-fixes-43", + "bug-fixes-44", + "bug-fixes-45", + "bug-fixes-46", + "bug-fixes-47", + "bug-fixes-48", + "bug-fixes-49", + "bug-fixes-5", + "bug-fixes-50", + "bug-fixes-51", + "bug-fixes-52", + "bug-fixes-53", + "bug-fixes-54", + "bug-fixes-55", + "bug-fixes-56", + "bug-fixes-57", + "bug-fixes-58", + "bug-fixes-59", + "bug-fixes-6", + "bug-fixes-60", + "bug-fixes-61", + "bug-fixes-62", + "bug-fixes-63", + "bug-fixes-64", + "bug-fixes-65", + "bug-fixes-66", + "bug-fixes-67", + "bug-fixes-68", + "bug-fixes-69", + "bug-fixes-7", + "bug-fixes-70", + "bug-fixes-71", + "bug-fixes-72", + "bug-fixes-73", + "bug-fixes-74", + "bug-fixes-75", + "bug-fixes-76", + "bug-fixes-77", + "bug-fixes-78", + "bug-fixes-79", + "bug-fixes-8", + "bug-fixes-80", + "bug-fixes-81", + "bug-fixes-82", + "bug-fixes-83", + "bug-fixes-84", + "bug-fixes-85", + "bug-fixes-86", + "bug-fixes-87", + "bug-fixes-88", + "bug-fixes-89", + "bug-fixes-9", + "bug-fixes-90", + "bug-fixes-91", + "bug-fixes-92", + "bug-fixes-93", + "bug-fixes-94", + "bug-fixes-95", + "bug-fixes-96", + "bug-fixes-97", + "bug-fixes-98", + "bug-fixes-99", + "bug-reports-and-feedback", + "bugfixes", + "bugfixes-1", + "bugfixes-10", + "bugfixes-11", + "bugfixes-12", + "bugfixes-13", + "bugfixes-14", + "bugfixes-15", + "bugfixes-16", + "bugfixes-17", + "bugfixes-2", + "bugfixes-3", + "bugfixes-4", + "bugfixes-5", + "bugfixes-6", + "bugfixes-7", + "bugfixes-8", + "bugfixes-9", + "build", + "build-&-deploy", + "build-a-dashboard", + "build-an-arbitrary-table", + "build-maintenance", + "build-the-api", + "build-the-custom-builder-tool", + "build-the-repl", + "build-visualizations-with-grafana", + "build-visualizations-with-superset", + "build-visualizations-with-tableau", + "building-a-counter", + "buildtsi", + "built-in-functions", + "built-in-iterators", + "bulk-delete-api-tokens", + "bundle-multiple-certificates", + "burrow", + "business-continuity-and-disaster-recovery", + "bymeasurement", + "bypass-your-identity-provider", + "bytes", + "bytes-and-compression", + "bytes-syntax", + "bytes-types", + "bytesread", + "bytesread-1", + "bytesrx", + "byteswritten", + "byteswritten-1", + "c", + "c-1", + "c-net", + "c-net-flight-client", + "ca-certs", + "ca-certs--", + "cache", + "cache-computation-results", + "cache-data-loading", + "cache-disk-bytes", + "cache-functions", + "cache-in-use-bytes", + "cache-latest-snapshot", + "cache-max-memory-size", + "cache-max-memory-size--1g", + "cache-snapshot-memory-size", + "cache-snapshot-memory-size--25m", + "cache-snapshot-write-cold-duration", + "cache-snapshot-write-cold-duration--10m", + "cache-subsystem-metrics", + "cache-writes-failed", + "cache-writes-total", + "cache-writes-with-dropped-points", + "cacheagems", + "cachecompactionduration", + "cachecompactionerr", + "cachecompactions", + "cachecompactionsactive", + "cachedbytes", + "caching", + "calculate-a-five-year-moving-average-every-year", + "calculate-a-new-column", + "calculate-a-percentage", + "calculate-a-percentage-from-two-fields", + "calculate-a-percentage-using-aggregate-functions", + "calculate-a-three-point-double-exponential-moving-average", + "calculate-a-three-point-exponential-moving-average", + "calculate-a-three-point-exponential-moving-average-with-null-values", + "calculate-a-three-point-moving-average", + "calculate-a-three-point-moving-average-with-null-values", + "calculate-a-three-point-relative-strength-index", + "calculate-a-three-point-triple-exponential-moving-average", + "calculate-a-two-point-triple-exponential-derivative", + "calculate-a-weekly-mean", + "calculate-and-create-a-new-table", + "calculate-arctangents-of-mean-values", + "calculate-changes-between-normalized-counter-values", + "calculate-field-values-associated-with-a-field-key-to-the-power-of-4", + "calculate-field-values-associated-with-a-field-key-to-the-power-of-4-and-include-several-clauses", + "calculate-field-values-associated-with-each-field-key-in-a-measurement-to-the-power-of-4", + "calculate-kaufmans-adaptive-moving-average-for-input-data", + "calculate-mean-values-rounded-down-to-the-nearest-integer", + "calculate-mean-values-rounded-to-the-nearest-integer", + "calculate-mean-values-rounded-up-to-the-nearest-integer", + "calculate-mean-values-to-the-power-of-4", + "calculate-multiple-quantiles-from-prometheus-histograms", + "calculate-n-to-the-p-power-with-default-parameters", + "calculate-percentages", + "calculate-percentages-in-a-query", + "calculate-percentages-using-multiple-data-sources", + "calculate-percentages-using-multiple-fields", + "calculate-percentages-using-multiple-measurements", + "calculate-quantile-values-from-prometheus-histograms", + "calculate-rates-across-joined-series--backfill", + "calculate-several-mean-values-and-place-a-condition-on-those-mean-values", + "calculate-speed", + "calculate-the-absolute-values-of-field-values-associated-with-a-field-key", + "calculate-the-absolute-values-of-field-values-associated-with-a-field-key-and-include-several-clauses", + "calculate-the-absolute-values-of-field-values-associated-with-each-field-key-in-a-measurement", + "calculate-the-absolute-values-of-mean-values", + "calculate-the-arccosine-of-field-values-associated-with-a-field-key", + "calculate-the-arccosine-of-field-values-associated-with-a-field-key-and-include-several-clauses", + "calculate-the-arccosine-of-field-values-associated-with-each-field-key-in-a-measurement", + "calculate-the-arccosine-of-mean-values", + "calculate-the-arcsine-of-field-values-associated-with-a-field-key", + "calculate-the-arcsine-of-field-values-associated-with-a-field-key-and-include-several-clauses", + "calculate-the-arcsine-of-field-values-associated-with-each-field-key-in-a-measurement", + "calculate-the-arcsine-of-mean-values", + "calculate-the-arctangent-of-field-values-associated-with-a-field-key", + "calculate-the-arctangent-of-field-values-associated-with-a-field-key-and-include-several-clauses", + "calculate-the-arctangent-of-field-values-associated-with-each-field-key-in-a-measurement", + "calculate-the-arctangent-of-field_key_b-over-field_key_a", + "calculate-the-arctangent-of-field_key_y-over-field_key_x", + "calculate-the-arctangent-of-mean-values", + "calculate-the-arctangent-of-values-associated-with-each-field-key-in-a-measurement-divided-by-field_key_a", + "calculate-the-arctangent-of-values-associated-with-each-field-key-in-a-measurement-divided-by-field_key_x", + "calculate-the-arctangents-of-field-values-and-include-several-clauses", + "calculate-the-average-difference-between-two-fields", + "calculate-the-average-of-all-values", + "calculate-the-average-percentage-of-total-weight-per-variety-each-hour", + "calculate-the-average-rate-of-change-in-data", + "calculate-the-average-rate-of-change-in-specified-time-windows", + "calculate-the-average-temperature-for-each-room", + "calculate-the-average-value-of-input-tables", + "calculate-the-ceiling-of-field-values-associated-with-a-field-key", + "calculate-the-ceiling-of-field-values-associated-with-a-field-key-and-include-several-clauses", + "calculate-the-ceiling-of-field-values-associated-with-each-field-key-in-a-measurement", + "calculate-the-cosine-of-field-values-associated-with-a-field-key", + "calculate-the-cosine-of-field-values-associated-with-a-field-key-and-include-several-clauses", + "calculate-the-cosine-of-field-values-associated-with-each-field-key-in-a-measurement", + "calculate-the-cosine-of-mean-values", + "calculate-the-covariance-between-two-columns", + "calculate-the-cumulative-sum-of-mean-values", + "calculate-the-cumulative-sum-of-the-field-values-associated-with-a-field-key", + "calculate-the-cumulative-sum-of-the-field-values-associated-with-a-field-key-and-include-several-clauses", + "calculate-the-cumulative-sum-of-the-field-values-associated-with-each-field-key-in-a-measurement", + "calculate-the-cumulative-sum-of-the-field-values-associated-with-each-field-key-that-matches-a-regular-expression", + "calculate-the-derivative-between-the-field-values-associated-with-a-field-key", + "calculate-the-derivative-between-the-field-values-associated-with-a-field-key-and-include-several-clauses", + "calculate-the-derivative-between-the-field-values-associated-with-a-field-key-and-specify-the-unit-option", + "calculate-the-derivative-between-the-field-values-associated-with-each-field-key-in-a-measurement-and-specify-the-unit-option", + "calculate-the-derivative-between-the-field-values-associated-with-each-field-key-that-matches-a-regular-expression-and-specify-the-unit-option", + "calculate-the-derivative-of-mean-values", + "calculate-the-derivative-of-mean-values-and-specify-the-unit-option", + "calculate-the-difference-between-maximum-values", + "calculate-the-difference-between-subsequent-values", + "calculate-the-difference-between-subsequent-values-with-null-values", + "calculate-the-difference-between-the-field-values-associated-with-a-field-key", + "calculate-the-difference-between-the-field-values-associated-with-a-field-key-and-include-several-clauses", + "calculate-the-difference-between-the-field-values-associated-with-each-field-key-in-a-measurement", + "calculate-the-difference-between-the-field-values-associated-with-each-field-key-that-matches-a-regular-expression", + "calculate-the-duration-between-two-timestamps", + "calculate-the-duration-of-states", + "calculate-the-elapsed-time-between-field-values-associated-with-a-field-key", + "calculate-the-elapsed-time-between-field-values-associated-with-a-field-key-and-include-several-clauses", + "calculate-the-elapsed-time-between-field-values-associated-with-a-field-key-and-specify-the-unit-option", + "calculate-the-elapsed-time-between-field-values-associated-with-each-field-key-in-a-measurement-and-specify-the-unit-option", + "calculate-the-elapsed-time-between-field-values-associated-with-each-field-key-that-matches-a-regular-expression-and-specify-the-unit-option", + "calculate-the-exponential-of-field-values-associated-with-a-field-key", + "calculate-the-exponential-of-field-values-associated-with-a-field-key-and-include-several-clauses", + "calculate-the-exponential-of-field-values-associated-with-each-field-key-in-a-measurement", + "calculate-the-exponential-of-mean-values", + "calculate-the-floor-of-field-values-associated-with-a-field-key", + "calculate-the-floor-of-field-values-associated-with-a-field-key-and-include-several-clauses", + "calculate-the-floor-of-field-values-associated-with-each-field-key-in-a-measurement", + "calculate-the-integral", + "calculate-the-integral-for-the-field-values-associated-with-a-field-key", + "calculate-the-integral-for-the-field-values-associated-with-a-field-key-and-include-several-clauses", + "calculate-the-integral-for-the-field-values-associated-with-a-field-key-and-specify-the-unit-option", + "calculate-the-integral-for-the-field-values-associated-with-each-field-key-in-a-measurement-and-specify-the-unit-option", + "calculate-the-integral-for-the-field-values-associated-with-each-field-key-that-matches-a-regular-expression-and-specify-the-unit-option", + "calculate-the-integral-with-linear-interpolation", + "calculate-the-kama-of-input-tables", + "calculate-the-logarithm-base-10-of-field-values-associated-with-a-field-key", + "calculate-the-logarithm-base-10-of-field-values-associated-with-a-field-key-and-include-several-clauses", + "calculate-the-logarithm-base-10-of-field-values-associated-with-each-field-key-in-a-measurement", + "calculate-the-logarithm-base-10-of-mean-values", + "calculate-the-logarithm-base-2-of-field-values-associated-with-a-field-key", + "calculate-the-logarithm-base-2-of-field-values-associated-with-a-field-key-and-include-several-clauses", + "calculate-the-logarithm-base-2-of-field-values-associated-with-each-field-key-in-a-measurement", + "calculate-the-logarithm-base-2-of-mean-values", + "calculate-the-logarithm-base-4-of-field-values-associated-with-a-field-key", + "calculate-the-logarithm-base-4-of-field-values-associated-with-a-field-key-and-include-several-clauses", + "calculate-the-logarithm-base-4-of-field-values-associated-with-each-field-key-in-a-measurement", + "calculate-the-logarithm-base-4-of-mean-values", + "calculate-the-mean-and-median-field-values-in-one-query", + "calculate-the-mean-difference-between-two-fields", + "calculate-the-mean-field-value-associated-with-a-field-key", + "calculate-the-mean-field-value-associated-with-a-field-key-and-include-several-clauses", + "calculate-the-mean-field-value-associated-with-each-field-key-in-a-measurement", + "calculate-the-mean-field-value-associated-with-each-field-key-that-matches-a-regular-expression", + "calculate-the-mean-value-of-a-field", + "calculate-the-mean-value-of-a-field-within-time-windows-grouped-by-time", + "calculate-the-mean-value-of-each-field", + "calculate-the-mean-value-of-fields-where-the-field-key-matches-a-regular-expression", + "calculate-the-median-field-value-associated-with-a-field-key", + "calculate-the-median-field-value-associated-with-a-field-key-and-include-several-clauses", + "calculate-the-median-field-value-associated-with-each-field-key-in-a-measurement", + "calculate-the-median-field-value-associated-with-each-field-key-that-matches-a-regular-expression", + "calculate-the-median-value-of-a-field", + "calculate-the-median-value-of-a-field-within-time-windows-grouped-by-time", + "calculate-the-median-value-of-each-field", + "calculate-the-median-value-of-fields-where-the-field-key-matches-a-regular-expression", + "calculate-the-minimum-and-maximum-field-values-in-one-query", + "calculate-the-mode-a-field-within-time-windows-grouped-by-time", + "calculate-the-mode-field-value-associated-with-a-field-key", + "calculate-the-mode-field-value-associated-with-a-field-key-and-include-several-clauses", + "calculate-the-mode-field-value-associated-with-each-field-key-in-a-measurement", + "calculate-the-mode-field-value-associated-with-each-field-key-that-matches-a-regular-expression", + "calculate-the-mode-of-field-keys-that-match-a-regular-expression", + "calculate-the-mode-of-two-fields-in-one-query", + "calculate-the-mode-value-of-a-field", + "calculate-the-mode-value-of-each-field", + "calculate-the-moving-average-of-maximum-values", + "calculate-the-moving-average-of-the-field-values-associated-with-a-field-key", + "calculate-the-moving-average-of-the-field-values-associated-with-a-field-key-and-include-several-clauses", + "calculate-the-moving-average-of-the-field-values-associated-with-each-field-key-in-a-measurement", + "calculate-the-moving-average-of-the-field-values-associated-with-each-field-key-that-matches-a-regular-expression", + "calculate-the-natural-logarithm-of-field-values-associated-with-a-field-key", + "calculate-the-natural-logarithm-of-field-values-associated-with-a-field-key-and-include-several-clauses", + "calculate-the-natural-logarithm-of-field-values-associated-with-each-field-key-in-a-measurement", + "calculate-the-natural-logarithm-of-mean-values", + "calculate-the-non-negative-difference-between-subsequent-values", + "calculate-the-non-negative-rate-of-change-per-second", + "calculate-the-overall-average-temperature-of-all-rooms", + "calculate-the-percentage-of-total-weight-per-apple-variety", + "calculate-the-rate-of-change-in-gauge-values", + "calculate-the-rate-of-change-in-normalized-counter-values", + "calculate-the-rate-of-change-per-second-with-null-values", + "calculate-the-running-total-of-values", + "calculate-the-sine-of-field-values-associated-with-a-field-key", + "calculate-the-sine-of-field-values-associated-with-a-field-key-and-include-several-clauses", + "calculate-the-sine-of-field-values-associated-with-each-field-key-in-a-measurement", + "calculate-the-sine-of-mean-values", + "calculate-the-spread-for-the-field-values-associated-with-a-field-key", + "calculate-the-spread-for-the-field-values-associated-with-a-field-key-and-include-several-clauses", + "calculate-the-spread-for-the-field-values-associated-with-each-field-key-in-a-measurement", + "calculate-the-spread-for-the-field-values-associated-with-each-field-key-that-matches-a-regular-expression", + "calculate-the-spread-of-a-field", + "calculate-the-spread-of-a-field-within-time-windows-grouped-by-time", + "calculate-the-spread-of-each-field", + "calculate-the-spread-of-field-keys-that-match-a-regular-expression", + "calculate-the-square-root-of-field-values-associated-with-a-field-key", + "calculate-the-square-root-of-field-values-associated-with-a-field-key-and-include-several-clauses", + "calculate-the-square-root-of-field-values-associated-with-each-field-key-in-a-measurement", + "calculate-the-square-root-of-mean-values", + "calculate-the-standard-deviation-for-the-field-values-associated-with-a-field-key", + "calculate-the-standard-deviation-for-the-field-values-associated-with-a-field-key-and-include-several-clauses", + "calculate-the-standard-deviation-for-the-field-values-associated-with-each-field-key-in-a-measurement", + "calculate-the-standard-deviation-for-the-field-values-associated-with-each-field-key-that-matches-a-regular-expression", + "calculate-the-standard-deviation-of-a-field", + "calculate-the-standard-deviation-of-a-field-within-time-windows-grouped-by-time", + "calculate-the-standard-deviation-of-each-field", + "calculate-the-standard-deviation-of-fields-where-the-field-key-matches-a-regular-expression", + "calculate-the-sum-of-several-derivative-values", + "calculate-the-sum-of-several-max-values", + "calculate-the-sum-of-the-field-values-associated-with-a-field-key", + "calculate-the-sum-of-the-field-values-associated-with-a-field-key-and-include-several-clauses", + "calculate-the-sum-of-the-field-values-associated-with-each-field-key-in-a-measurement", + "calculate-the-sum-of-the-field-values-associated-with-each-field-key-that-matches-a-regular-expression", + "calculate-the-sum-of-values-for-fields-where-the-field-key-matches-a-regular-expression", + "calculate-the-sum-of-values-in-a-field", + "calculate-the-sum-of-values-in-a-field-within-time-windows-grouped-by-time", + "calculate-the-sum-of-values-in-each-field", + "calculate-the-tangent-of-field-values-associated-with-a-field-key", + "calculate-the-tangent-of-field-values-associated-with-a-field-key-and-include-several-clauses", + "calculate-the-tangent-of-field-values-associated-with-each-field-key-in-a-measurement", + "calculate-the-tangent-of-mean-values", + "calculate-the-time-between-points-in-seconds", + "calculate-the-time-weighted-average-of-values", + "calculate-time-in-state", + "calculate-time-weighted-average", + "calculate-value-between-events", + "calculating-a-percentage-in-a-query", + "calculating-a-percentage-using-aggregate-functions", + "calculating-aggregate-percentage-per-variety", + "calculating-percentage-of-total-weight-per-apple-variety", + "calendar-months-and-years", + "call-expressions", + "call-iterators", + "can-i-change-a-fields-data-type", + "can-i-delete-a-field", + "can-i-delete-a-measurement", + "can-i-delete-multiple-measurements-at-the-same-time", + "can-i-identify-write-precision-from-returned-timestamps", + "can-i-perform-mathematical-operations-against-timestamps", + "can-i-use-influxdb-with-authentication-disabled", + "can-you-change-the-permission-level-of-members-in-your-organization", + "cancel-an-in-progress-cache-warm-operation", + "cancel-service", + "cancel-your-influxdb-cloud-serverless-subscription", + "cancel-your-influxdb-cloud-subscription", + "cannot-be-undone", + "cannot-delete-data-by-field", + "cannot-group-by-fields", + "cannot-include-both-aggregate-and-non-aggregate-field-expressions", + "cannot-join-on-an-empty-table", + "cannot-query-multiple-time-ranges", + "cannot-restore-to-an-existing-database", + "cannot-restore-to-existing-buckets", + "cannot-use-multiple-select-statements-in-a-subquery", + "cannot-use-parameters-for-durations", + "captureresponse", + "carbon2", + "cardinality", + "cardinality-metaqueries", + "cast-a-float-field-to-an-integer", + "cast-a-float-field-to-an-unsigned-integer", + "cast-an-integer-field-to-a-float", + "cast-boolean-field-values-to-integers", + "cast-booleans-to-integers", + "cast-float-field-values-to-integers", + "cast-float-field-values-to-strings-this-functionality-is-not-supported", + "cast-operations", + "cast-to-a-boolean-type", + "cast-to-a-float", + "cast-to-a-string-type", + "cast-to-a-timestamp-type", + "cast-to-an-integer", + "cast-to-an-unsigned-integer", + "cast-to-numeric-types", + "cast-unix-nanosecond-timestamps-to-a-timestamp-type", + "cast-values-to-different-types", + "catalog", + "catalog-op-latency-p90", + "catalog-operations-overview", + "catalog-ops---error", + "catalog-ops---success", + "catalog-scaling-strategies", + "catalog-service", + "catalog-store", + "catch-an-explicit-error", + "category", + "cause", + "cause-1", + "cause-2", + "cause-b1", + "cause-b2", + "cause-e1", + "cause-e2", + "cause-e3", + "cause-e4", + "causes", + "caveats", + "caveats-and-known-issues", + "cbrt", + "ceil", + "cells-can-only-be-cloned-to-the-current-dashboard", + "center", + "ceph", + "certificate--etcsslinfluxdbpem", + "cgroup", + "chaining-methods", + "chaining-methods-1", + "chaining-topics", + "chande_momentum_oscillator", + "change-a-users-password", + "change-endpoint-details", + "change-kapacitor-logging-settings", + "change-over-internal-api-to-use-message-passing-semantics", + "change-password-hashing-algorithm", + "change-the-name-of-the-value-column", + "change-the-name-of-the-value-column-and-apply-a-selector-function", + "change-the-name-of-the-value-column-and-apply-an-aggregate-function", + "change-the-name-of-window-and-then-aggregate-the-value-column", + "change-the-values-reported-for-intervals-with-no-data", + "change-your-password", + "change-your-password-using-the-influx-cli", + "changedetect", + "changes", + "changes-1", + "changes-10", + "changes-11", + "changes-12", + "changes-13", + "changes-14", + "changes-15", + "changes-16", + "changes-17", + "changes-18", + "changes-19", + "changes-2", + "changes-20", + "changes-21", + "changes-22", + "changes-23", + "changes-3", + "changes-4", + "changes-5", + "changes-6", + "changes-7", + "changes-8", + "changes-9", + "changes-to-the-ceph-plugin", + "changes-to-the-windows-ping-plugin", + "channel", + "channelurl", + "char_length", + "character_length", + "characters", + "chars", + "chat-id", + "chat_id", + "check", + "check-configuration", + "check-deployment-status", + "check-file-permissions", + "check-for-resource-dependencies", + "check-if-a-column-value-is-null", + "check-if-a-statically-defined-record-contains-a-key", + "check-if-a-value-exists-in-an-array", + "check-if-a-value-is-a-nan-float-value", + "check-if-there-is-a-difference-between-streams", + "check-influxdb-logs", + "check-interval", + "check-interval--10m", + "check-interval--30m0s", + "check-interval-1", + "check-interval-2", + "check-query", + "check-schema", + "check-status", + "check-the-http-response-in-your-logs", + "check-the-network-connection-between-nodes", + "check-the-type-of-a-value-inside-of-a-dynamic-type", + "check-types", + "check-your-influxdb-user-permissions", + "checking-current-udpip-buffer-limits", + "checking-status", + "checkname", + "checkpoint-releases", + "chobbs-package", + "choose-a-plugin-strategy", + "choose-sample-data", + "choose-the-influxdata-key-pair-for-your-os-version", + "choose-the-query-method-for-your-workload", + "choose-the-right-deployment-tool-for-your-environment", + "choose-the-write-endpoint-for-your-workload", + "choose-your-plugin-type", + "choose-your-visualization-type", + "chr", + "chronoctl", + "chronograf", + "chronograf---chronograf-server", + "chronograf-accessed-resources", + "chronograf-configuration-options", + "chronograf-frequently-asked-questions-faqs", + "chronograf-owned-resources", + "chronograf-release-notes", + "chronograf-server-flags", + "chronograf-service-options", + "chronograf-setup", + "chronograf-v18", + "chronografs-data-explorer", + "chrony", + "chunks", + "ciphers", + "ciphers---tls_ecdhe_ecdsa_with_chacha20_poly1305-tls_ecdhe_rsa_with_aes_128_gcm_sha256-", + "circle", + "circular-rewrites", + "cisco_telemetry_gnmi", + "cisco_telemetry_mdt", + "clarify", + "class", + "class-flightsqlclient", + "class-influxdb3client", + "class-influxdbclient3", + "class-point", + "class-writeoptions", + "classes", + "clauses", + "clear", + "cli", + "cli-connection-configurations-recommended", + "cli-example", + "cli-example-1", + "cli-example-2", + "cli-example-3", + "cli-example-4", + "cli-example-5", + "cli-example-6", + "cli-examples", + "cli-onboarding", + "cli-updates", + "clickhouse", + "clickhouse-package", + "client", + "client-id", + "client-libraries", + "client-libraries-for-influxdb-2x-and-18", + "client-libraries-for-influxdb-3", + "client-support-for-parameterized-queries", + "clienterror", + "clientid", + "clienturl", + "clockface-v2-icons", + "clockface-v3-icons", + "clockface-v4-icons", + "clone", + "clone-a-check", + "clone-a-dashboard", + "clone-a-task", + "clone-a-telegraf-configuration", + "clone-a-token", + "clone-an-existing-notification-rule", + "clone-cells", + "clone-dashboards", + "clone-dashboards-and-cells", + "clone-the-downsampling-template-repository", + "cloud", + "cloud-infrastructure", + "cloud-urls", + "cloud_pubsub", + "cloud_pubsub_push", + "cloudwatch", + "cloudwatch_logs", + "cloudwatch_metric_streams", + "cluster", + "cluster-commands-result-in-timeout-without-error", + "cluster-enterprise-only", + "cluster-id", + "cluster-management", + "cluster-management-tools", + "cluster-metrics-in-a-table", + "cluster-profiling", + "cluster-section", + "cluster-settings", + "cluster-setup", + "cluster-sizing-recommendation", + "cluster-specific-bug-fixes", + "cluster-specific-bug-fixes-1", + "cluster-specific-bug-fixes-2", + "cluster-specific-bug-fixes-3", + "cluster-specific-bug-fixes-4", + "cluster-specific-bug-fixes-5", + "cluster-specific-bug-fixes-6", + "cluster-specific-bugfixes", + "cluster-specific-bugfixes-1", + "cluster-specific-features", + "cluster-specific-features-1", + "cluster-specific-features-2", + "cluster-tracing", + "clustered-specific-information", + "clustered-url-field", + "clustered-urls", + "clustering", + "co-monitoring-dashboard", + "coalesce", + "cockroachdb-data-source-name", + "cockroachdb-to-flux-data-type-conversion", + "code", + "code-representation", + "codefield", + "coerce-data-types-to-avoid-rejected-point-errors", + "collaborate-with-other-users", + "collect", + "collect-compaction-information-for-the-table", + "collect-data-with-input-plugins", + "collect-kubernetes-metrics-with-telegraf", + "collect-partition-information-for-multiple-tables", + "collect-table-information", + "collectd", + "collectd-protocol-support-in-influxdb", + "collectd-section", + "collectd-section-1", + "collectd-settings", + "collected", + "collected-1", + "collection-interval", + "collection-jitter", + "collector", + "color", + "colorized-thresholds", + "column", + "column-data-types", + "column-formatted-results", + "column-labels-beginning-with-underscores", + "column-limit", + "column-limitations-when-deleting-data", + "column-settings", + "columnkey", + "columnname", + "columns", + "columns-explicitly-mapped-in-the-join-are-null", + "columns-with-the-underscore-prefix", + "combine", + "combine-filters-for-performance-improvement", + "combine-multiple-header-rows", + "command-aliases", + "command-flags", + "command-line-examples", + "command-line-flags", + "command-line-tools", + "command-line-tools-for-managing-entropy", + "command-not-supported", + "command-output", + "command-output-1", + "command-output-2", + "command-output-and-interactive-prompts", + "commands", + "comment", + "comments", + "commercial-license", + "commit-timeout", + "common--import-errors", + "common-bigquery-url-parameters", + "common-cache-operations", + "common-data-processing-tasks", + "common-issues", + "common-issues-with-advanced-syntax", + "common-issues-with-basic-syntax", + "common-issues-with-bottom", + "common-issues-with-count", + "common-issues-with-distinct", + "common-issues-with-elapsed", + "common-issues-with-fill", + "common-issues-with-functions", + "common-issues-with-holt_winters", + "common-issues-with-mathematical-operators", + "common-issues-with-percentile", + "common-issues-with-restore", + "common-issues-with-sample", + "common-issues-with-show-field-keys", + "common-issues-with-subqueries", + "common-issues-with-the-into-clause", + "common-issues-with-the-select-statement", + "common-issues-with-the-where-clause", + "common-issues-with-time-syntax", + "common-issues-with-top", + "common-log-format-clf", + "common-pitfalls", + "common-queries", + "common-tag-issues", + "common-variable-queries", + "community", + "community-templates-added-to-influxdb-ui", + "compact-a-series-file-offline", + "compact-full-write-cold-duration", + "compact-full-write-cold-duration--4h", + "compact-series-file", + "compact-series-file--false", + "compact-throughput", + "compact-throughput--48m", + "compact-throughput-burst", + "compact-throughput-burst--48m", + "compaction", + "compaction-cleanup-wait", + "compaction-cpu-utilization", + "compaction-gen2-duration", + "compaction-max-num-files-per-plan", + "compaction-memory-usage", + "compaction-multipliers", + "compaction-row-limit", + "compaction-tier-cpumem", + "compactions", + "compactions-active", + "compactions-failed", + "compactions-queued", + "compactions-since-startup", + "compactor", + "compactor-l0-file-counts-5m-bucket-width", + "compactor-scaling-strategies", + "companion-relational-sensor-data", + "comparable-constraint", + "compare-arrays", + "compare-dense_rank-rank-and-row_number-functions", + "compare-float-values", + "compare-influxdb-to-sql-databases", + "compare-integers", + "compare-month-over-month-values", + "compare-queries", + "compare-queries-1", + "compare-records", + "compare-schemas", + "compare-schemas-1", + "compare-the-lexicographical-order-of-column-values", + "compare-uintegers", + "compare-usage-metrics-to-organization-usage-limits", + "compared-to-similar-functions", + "comparing-measurements-and-creating-an-alert", + "comparing-values-from-different-buckets", + "comparison-operators", + "compatibility-apis-differ-from-native-apis", + "compatibility-endpoints", + "compiling-active", + "compiling-duration-seconds", + "complete-example", + "complete-example-query-script", + "complete-example-write-script", + "complete-list-of-flux-functions", + "completion-snippets-in-bashrc-or-zshrc", + "compliance-and-auditing", + "component", + "components-of-a-task", + "composite-types", + "compression", + "computation-methods-and-behavior", + "compute-the-099-quantile-of-a-prometheus-histogram", + "compute-the-099-quantile-of-a-prometheus-histogram-parsed-with-metric-version-1", + "compute-the-90th-percentile-of-a-histogram", + "compute-the-90th-quantile-of-a-histogram", + "compute-the-kaufmans-efficiency-ratio", + "compute-the-mode-of-input-tables", + "compute-the-product-of-all-values", + "compute-the-sum-and-count-in-a-single-reducer", + "compute-the-sum-of-the-value-column", + "concat", + "concat_ws", + "concatenate-strings", + "concepts", + "conda-install", + "conditional-expression-example", + "conditional-expression-syntax", + "conditional-expressions", + "conditional-functions", + "conditional-logic", + "conditionally-assign-a-state", + "conditionally-increment-a-count-with-reduce", + "conditionally-rename-columns-using-a-function", + "conditionally-set-the-value-of-a-variable", + "conditionally-transform-column-values-with-map", + "config", + "config-coordinator", + "config-cqs", + "config-data", + "config-example", + "config-examples", + "config-httpd", + "config-meta", + "config-monitor", + "config-override", + "config-precreator", + "config-retention", + "config-subscriber", + "configs-path", + "configurable-security-controls", + "configurable-settings", + "configuration", + "configuration-1", + "configuration-and-operational-considerations-on-a-cluster", + "configuration-batch", + "configuration-changes", + "configuration-changes-1", + "configuration-changes-2", + "configuration-changes-3", + "configuration-changes-4", + "configuration-changes-5", + "configuration-data", + "configuration-file", + "configuration-file-1", + "configuration-file-10", + "configuration-file-11", + "configuration-file-12", + "configuration-file-13", + "configuration-file-14", + "configuration-file-15", + "configuration-file-16", + "configuration-file-17", + "configuration-file-18", + "configuration-file-19", + "configuration-file-2", + "configuration-file-20", + "configuration-file-21", + "configuration-file-22", + "configuration-file-23", + "configuration-file-24", + "configuration-file-25", + "configuration-file-26", + "configuration-file-27", + "configuration-file-28", + "configuration-file-29", + "configuration-file-3", + "configuration-file-30", + "configuration-file-31", + "configuration-file-32", + "configuration-file-33", + "configuration-file-34", + "configuration-file-35", + "configuration-file-36", + "configuration-file-37", + "configuration-file-38", + "configuration-file-39", + "configuration-file-4", + "configuration-file-40", + "configuration-file-41", + "configuration-file-42", + "configuration-file-43", + "configuration-file-44", + "configuration-file-45", + "configuration-file-46", + "configuration-file-47", + "configuration-file-48", + "configuration-file-49", + "configuration-file-5", + "configuration-file-50", + "configuration-file-51", + "configuration-file-52", + "configuration-file-53", + "configuration-file-54", + "configuration-file-55", + "configuration-file-56", + "configuration-file-57", + "configuration-file-58", + "configuration-file-59", + "configuration-file-6", + "configuration-file-60", + "configuration-file-61", + "configuration-file-62", + "configuration-file-63", + "configuration-file-64", + "configuration-file-65", + "configuration-file-66", + "configuration-file-67", + "configuration-file-68", + "configuration-file-69", + "configuration-file-7", + "configuration-file-70", + "configuration-file-71", + "configuration-file-72", + "configuration-file-8", + "configuration-file-9", + "configuration-file-locations", + "configuration-help", + "configuration-management", + "configuration-options", + "configuration-overview", + "configuration-precedence", + "configuration-settings", + "configuration-settings-for-flux-query-management", + "configuration-settings-for-query-management", + "configuration-simplification", + "configure", + "configure-a-deadman-check", + "configure-a-jdbc-server-connection", + "configure-a-replication-stream", + "configure-a-threshold-check", + "configure-a-watcher-of-watchers-system-to-monitor-influxdb-1x-servers", + "configure-access-to-the-influxdb-container-registry", + "configure-apache-jmeter", + "configure-apache-nifi", + "configure-apache-pulsar", + "configure-auth0-authentication", + "configure-authentication", + "configure-authentication-credentials", + "configure-authentication-duration", + "configure-authentication-using-jwt-tokens", + "configure-azure-active-directory-authentication", + "configure-backup-and-restore-services", + "configure-bitbucket-authentication", + "configure-chronograf", + "configure-chronograf-alert-endpoints", + "configure-chronograf-to-authenticate-with-a-username-and-password", + "configure-chronograf-to-authenticate-with-oauth-20", + "configure-chronograf-to-use-any-oauth-20-provider", + "configure-connection-profiles", + "configure-credentials", + "configure-dashboard-wide-settings", + "configure-data-nodes", + "configure-distributed-environments", + "configure-dns-routing", + "configure-error-handling", + "configure-error-handling-for-a-trigger", + "configure-event-handlers", + "configure-fluentd", + "configure-github-authentication", + "configure-gitlab-authentication", + "configure-google-authentication", + "configure-grafana-to-use-flux", + "configure-grafana-to-use-influxql", + "configure-gzip-compression", + "configure-heroku-authentication", + "configure-https-over-tls", + "configure-influxctl", + "configure-influxctl-to-connect-to-your-cluster", + "configure-influxctl-to-use-the-admin-token", + "configure-influxdb-clustered-to-use-keycloak", + "configure-influxdb-clustered-to-use-microsoft-entra-id", + "configure-influxdb-enterprise-clusters", + "configure-influxdb-enterprise-data-nodes", + "configure-influxdb-enterprise-meta-nodes", + "configure-influxdb-oss", + "configure-influxdb-subscriptions", + "configure-influxdb-to-use-tls", + "configure-ingress", + "configure-kapacitor", + "configure-kapacitor-flux-tasks", + "configure-kapacitor-flux-tasks-for-influxdb-cloud-or-2x", + "configure-kapacitor-subscriptions", + "configure-kapacitor-to-connect-to-influxdb", + "configure-kapacitor-to-talk-to-the-udf", + "configure-ldap-authentication", + "configure-ldap-for-an-influxdb-enterprise-cluster", + "configure-local-storage-for-ingesters", + "configure-meta-nodes", + "configure-object-storage-permissions", + "configure-okta-authentication", + "configure-openhab", + "configure-organizations", + "configure-password-hashing", + "configure-registry-access-in-valuesyaml", + "configure-security", + "configure-security-headers", + "configure-snapshots", + "configure-tcp-and-udp-ports-used-in-influxdb-enterprise", + "configure-telegraf", + "configure-telegraf-for-influxdb", + "configure-telegraf-input-and-output-plugins", + "configure-telegraf-input-plugins", + "configure-telegraf-to-read-csv-files", + "configure-telegraf-to-write-to-influxdb", + "configure-telegraf-to-write-to-influxdb-3-core", + "configure-telegraf-to-write-to-influxdb-3-enterprise", + "configure-the-catalog-database", + "configure-the-check", + "configure-the-check-query", + "configure-the-client-library", + "configure-the-column-display-format", + "configure-the-csv-display-format", + "configure-the-http-input-plugin-in-your-telegraf-configuration-file", + "configure-the-json-display-format", + "configure-the-log-viewer", + "configure-the-migration", + "configure-the-object-store", + "configure-the-port-or-address", + "configure-the-table-display-format", + "configure-timestamps-in-the-influxql-shell", + "configure-tls-for-chronograf", + "configure-tls-transport-layer-security-and-https", + "configure-vector", + "configure-with-the-http-api", + "configure-your-appinstance", + "configure-your-cluster", + "configure-your-cluster-to-connect-to-your-identity-provider", + "configure-your-dashboard", + "configure-your-influxdb-appinstance-resource-directly", + "configure-your-influxdb-cluster-using-helm", + "configure-your-influxdb-connection", + "configure-your-influxdb-log-location", + "configure-your-log-level", + "configure-your-server", + "configure-your-token-as-an-environment-variable", + "configure-your-triggers", + "configuring-and-using-multiple-http-post-endpoints", + "configuring-chronograf-to-work-with-kapacitor", + "configuring-cq-time-ranges-and-filling-empty-results", + "configuring-diamond-to-send-metrics-to-influxdb", + "configuring-execution-intervals", + "configuring-execution-intervals-and-cq-time-ranges", + "configuring-influxdb-oss", + "configuring-influxdb-oss-instances", + "configuring-kapacitor-for-our-udf", + "configuring-returned-timestamps", + "configuring-scrapers-and-discoverers", + "configuring-the-returned-timestamps", + "configuring-time-ranges-for-resampling", + "configuring-write-client-options", + "confirm-the-data-nodes-upgrade", + "confirm-the-meta-nodes-upgrade", + "congratulations", + "connect-chronograf-to-kapacitor", + "connect-chronograf-to-your-influxdb-instance-or-influxdb-enterprise-cluster", + "connect-grafana-to-your-influxdb-instance", + "connect-telegraf-to-a-secured-influxdb-enterprise-instance", + "connect-telegraf-to-a-secured-influxdb-instance", + "connect-your-identity-provider-to-auth0", + "connecting-chronograf-to-influxdb-enterprise-clusters", + "connection-configuration-examples", + "conntrack", + "cons-of-external-monitoring", + "cons-of-internal-monitoring", + "consensus-timeout", + "consider-cache-limitations", + "consider-using-influxdb-tasks", + "consider-when-upgrading", + "consider-when-using-query-string-parameters", + "considerations-for-monitoring-the-1x-tick-stack", + "consistency-level--one", + "consistency-level--one-1", + "consoletty", + "consolidated-authentication", + "constant", + "constants", + "construct-line-protocol", + "construct-points-and-write-line-protocol", + "constructor", + "consul", + "consul-telemetry", + "consul_agent", + "contact-influxdata-sales-to-enable-sso", + "containers", + "contains", + "content", + "contents", + "contents-toggle-btn", + "continuous-queries", + "continuous-queries-and-kapacitor-tasks-may-produce-different-results", + "continuous-queries-settings", + "continuous-query", + "continuous-query-cq", + "continuous-query-execution-if-logging-enabled", + "continuous-query-management", + "continuous-query-statistics", + "continuous-query-use-cases", + "continuous_queries", + "continuous_queries-section", + "continuously-run-a-notebook", + "contour-ingress-support", + "contrib-package", + "contribute-an-external-plugin", + "contribute-code", + "contribute-to-chronograf", + "contribute-to-influxdb-oss", + "contributing-non-output-node", + "contributions-and-licenses", + "control-a-dashboard", + "control-at-the-dashboard-level", + "control-trigger-execution", + "control-your-dashboard-cell", + "convert-a-boolean-_value-column-to-floats", + "convert-a-boolean-_value-column-to-integers", + "convert-a-boolean-_value-column-to-uintegers", + "convert-a-boolean-to-a-hexadecimal-string-value", + "convert-a-duration-to-a-hexadecimal-string-value", + "convert-a-duration-to-a-sql-interval", + "convert-a-float-_value-column-to-integers", + "convert-a-float-_value-column-to-uintegers", + "convert-a-float-to-a-hexadecimal-string-value", + "convert-a-hex-color-code-to-a-name", + "convert-a-hexadecimal-string-into-bytes", + "convert-a-hexadecimal-string-to-a-uinteger", + "convert-a-hexadecimal-string-to-an-integer", + "convert-a-hexadecimal-string-to-an-unsigned-integer", + "convert-a-hexadecimal-string-to-bytes", + "convert-a-influxdb-1x-json-query-output-file-to-a-stream-of-tables", + "convert-a-influxdb-1x-json-query-output-string-to-a-stream-of-tables", + "convert-a-json-array-of-objects-to-a-flux-array", + "convert-a-json-array-of-scalar-values-to-a-flux-array", + "convert-a-json-array-to-a-flux-table", + "convert-a-json-object-to-a-flux-record", + "convert-a-monitoring-level-to-a-pagerduty-action", + "convert-a-query-builder-to-flux", + "convert-a-scientific-notation-string-to-a-float", + "convert-a-series-of-geographic-points-into-linestring", + "convert-a-severity-to-a-pagerduty-action", + "convert-a-status-level-to-a-pagerduty-severity", + "convert-a-string-and-key-to-a-base64-signed-hash", + "convert-a-string-into-a-regular-expression", + "convert-a-string-into-a-sensu-name", + "convert-a-string-to-64-bit-hash-using-xxhash", + "convert-a-string-to-a-64-bit-hash-using-cityhash64", + "convert-a-string-to-a-base64-string", + "convert-a-string-to-a-duration", + "convert-a-string-to-a-float", + "convert-a-string-to-a-regular-expression", + "convert-a-string-to-a-sha-1-hash", + "convert-a-string-to-a-sha-256-hash", + "convert-a-string-to-a-time-value", + "convert-a-string-to-an-md5-hash", + "convert-a-string-to-bytes", + "convert-a-time-to-a-hexadecimal-string-value", + "convert-a-uinteger-_value-column-to-an-integers", + "convert-a-uinteger-_value-column-to-an-uintegers", + "convert-a-uinteger-to-a-hexadecimal-string-value", + "convert-a-utc-timestamp-to-a-specified-timezone", + "convert-alert-levels-in-a-stream-of-tables-to-bigpanda-statuses", + "convert-all-values-in-a-column-to-booleans", + "convert-all-values-in-a-column-to-floats", + "convert-all-values-in-a-column-to-hexadecimal-string-values", + "convert-all-values-in-a-column-to-integers", + "convert-all-values-in-a-column-to-strings", + "convert-all-values-in-a-column-to-time", + "convert-all-values-in-a-column-to-unsigned-integers", + "convert-all-values-of-a-column-to-lower-case", + "convert-all-values-of-a-column-to-title-case", + "convert-all-values-of-a-column-to-upper-case", + "convert-an-alert-level-to-a-bigpanda-status", + "convert-an-array-of-floats-to-integers", + "convert-an-array-of-floats-to-strings", + "convert-an-array-of-floats-to-unsigned-integers", + "convert-an-array-of-integers-to-an-array-of-records", + "convert-an-array-of-integers-to-booleans", + "convert-an-array-of-integers-to-durations", + "convert-an-array-of-integers-to-floats", + "convert-an-array-of-integers-to-time-values", + "convert-an-array-of-strings-to-floats", + "convert-an-integer-_value-column-to-booleans", + "convert-an-integer-_value-column-to-floats", + "convert-an-integer-_value-column-to-times", + "convert-an-integer-to-a-float", + "convert-an-integer-to-a-hexadecimal-string-value", + "convert-an-integer-to-a-time-value", + "convert-basic-types-to-integers", + "convert-basic-types-to-strings", + "convert-basic-types-to-unsigned-integers", + "convert-batch-data-to-stream-data", + "convert-bits-into-a-float-value", + "convert-bytes-to-a-hexadecimal-string-value", + "convert-bytes-to-gigabytes", + "convert-characters-in-a-string-to-title-case", + "convert-columns-to-booleans", + "convert-columns-to-floats", + "convert-columns-to-integers", + "convert-columns-to-strings", + "convert-columns-to-time", + "convert-columns-to-uintegers", + "convert-continuous-queries-to-flux-queries", + "convert-data-types-to-booleans", + "convert-data-types-to-durations", + "convert-data-types-to-floats", + "convert-data-types-to-hexadecimal-strings", + "convert-data-types-to-integers", + "convert-data-types-to-strings", + "convert-data-types-to-time", + "convert-data-types-to-uintegers", + "convert-dynamic-types-to-flux-types", + "convert-hexadecimal-string-to-integer", + "convert-influxql-continuous-queries-to-flux", + "convert-integer-to-hexadecimal-string", + "convert-numeric-types-to-durations", + "convert-numeric-values-to-booleans", + "convert-regular-expressions-to-strings", + "convert-results-to-json", + "convert-strings-to-booleans", + "convert-strings-to-bytes", + "convert-the-_value-column-to-strings", + "convert-timestamp-format", + "convert-timestamps-into-seconds-since-the-unix-epoch", + "convert-values-in-a-column-to-durations", + "convert-windowed-data-to-stream-data", + "converter", + "converting-a-specific-shard", + "converting-all-shards-for-a-database", + "converting-all-shards-on-a-node", + "coordinator", + "copy-the-images-to-your-private-registry", + "copyright", + "copyshard", + "copyshardreq", + "core", + "core-1", + "core-2", + "core-3", + "core-4", + "core-5", + "core-6", + "core-commands", + "core-is-optimized-for-recent-data", + "core-service-dsn-parsing-errors", + "core-urls", + "corr", + "correlate", + "correlated-subqueries", + "correlated-subquery-performance", + "cors", + "cos", + "cosh", + "cot", + "couchbase", + "couchdb", + "count", + "count-and-fill", + "count-distinct-values-for-a-field", + "count-instances-of-a-substring-within-a-string", + "count-the-distinct-field-values-associated-with-a-field-key", + "count-the-distinct-field-values-associated-with-a-field-key-1", + "count-the-field-values-associated-with-a-field-key", + "count-the-field-values-associated-with-a-field-key-and-include-several-clauses", + "count-the-field-values-associated-with-each-field-key-in-a-measurement", + "count-the-field-values-associated-with-each-field-key-that-matches-a-regular-expression", + "count-the-number-of-consecutive-states", + "count-the-number-of-non-null-field-values-within-time-windows-grouped-by-time", + "count-the-number-of-non-null-values-in-a-field", + "count-the-number-of-non-null-values-in-each-field", + "count-the-number-of-non-null-values-in-fields-where-the-field-key-matches-a-regular-expression", + "count-the-number-of-points-reported-per-room-across-all-fields", + "count-the-number-of-records-in-each-input-table", + "count-the-number-of-records-with-a-specific-value", + "count-the-number-of-rows-in-a-table", + "count-the-number-rows-in-a-specific-state", + "count-the-values-that-match-a-regular-expression", + "count-unique-tag-values", + "count-unique-values", + "count-values-for-a-field", + "count-values-for-each-field-in-a-measurement", + "countcolumn", + "counter", + "counts-on-empty-tables", + "covar", + "covar_pop", + "covar_samp", + "covariance", + "covariance-between-two-columns", + "covariance-between-two-streams-of-data", + "cpu", + "cpu-accounting", + "cpu-limit", + "cpu-utilization-ingesters-k8s", + "cpu-utilization-k8s", + "cpu-utilization-routers-k8s", + "cpu_alert_batchtick", + "cpu_alert_streamtick", + "cpu_alerttick", + "cq", + "cqminute", + "cratedb", + "create", + "create-a-1x-compatible-authorization", + "create-a-basic-last-value-cache-for-one-column", + "create-a-bucket", + "create-a-bucket-and-dbrp-mapping", + "create-a-bucket-from-the-load-data-menu", + "create-a-bucket-in-the-data-explorer", + "create-a-bucket-schema", + "create-a-bucket-schema-using-the-influx-cli", + "create-a-bucket-schema-using-the-influxdb-http-api", + "create-a-bucket-that-enforces-explicit-schemas", + "create-a-bucket-that-retains-data-for-30-days", + "create-a-bucket-through-the-influxdb-cloud-api", + "create-a-bucket-using-the-influx-cli", + "create-a-bucket-with-a-custom-shard-group-duration", + "create-a-bucket-with-a-description", + "create-a-bucket-with-an-explicit-schema", + "create-a-bucket-with-infinite-data-retention", + "create-a-check", + "create-a-chronograf-ha-configuration", + "create-a-cluster-configuration-file", + "create-a-configuration-file", + "create-a-configuration-file-with-default-input-and-output-plugins", + "create-a-configuration-file-with-specific-input-and-output-plugins", + "create-a-configuration-with-default-input-and-output-plugins", + "create-a-configuration-with-specific-sections-and-plugins", + "create-a-connection-configuration-and-set-it-active", + "create-a-connection-configuration-that-uses-a-username-and-password", + "create-a-connection-configuration-without-setting-it-active", + "create-a-cumulative-histogram", + "create-a-cumulative-histogram-with-dynamically-generated-bins", + "create-a-custom-average-function", + "create-a-custom-dashboard-variable", + "create-a-custom-plugin", + "create-a-custom-telegraf-configuration", + "create-a-custom-token", + "create-a-custom-transformation", + "create-a-dashboard", + "create-a-data-write-plugin", + "create-a-database", + "create-a-database-connection-for-influxdb", + "create-a-database-default", + "create-a-database-or-table", + "create-a-database-token", + "create-a-database-using-basic-authentication", + "create-a-database-using-http-authentication", + "create-a-database-using-the-influxdb-api", + "create-a-database-with-a-30-day-retention-period", + "create-a-database-with-a-custom-partition-template", + "create-a-database-with-a-specific-retention-policy", + "create-a-database-with-an-authentication-token", + "create-a-database-with-an-infinite-retention-period", + "create-a-database-with-custom-partitioning", + "create-a-database-with-non-default-table-and-column-limits", + "create-a-dbrp-mapping", + "create-a-default-retention-policy", + "create-a-dictionary-from-a-list", + "create-a-dictionary-from-a-list-of-records", + "create-a-disabled-trigger", + "create-a-distinct-cache-for-one-column", + "create-a-distinct-value-cache", + "create-a-file-index", + "create-a-flux-task", + "create-a-flux-task-v2", + "create-a-full-configuration", + "create-a-full-configuration-as-save-it-to-a-file", + "create-a-go-module-directory", + "create-a-hierarchical-cache-with-constraints", + "create-a-histogram-from-input-data", + "create-a-kapacitor-flux-task-using-a-file", + "create-a-kapacitor-flux-task-via-stdin", + "create-a-keycloak-client-with-device-flow-enabled", + "create-a-keycloak-realm", + "create-a-label", + "create-a-last-value-cache", + "create-a-last-value-cache-with-multiple-keys-and-values", + "create-a-management-token", + "create-a-management-token-with-an-expiration-and-description", + "create-a-management-token-with-no-expiration", + "create-a-named-admin-token", + "create-a-new-account-in-a-new-region", + "create-a-new-dashboard", + "create-a-new-database", + "create-a-new-file-index-for-a-database", + "create-a-new-file-index-for-a-specific-table", + "create-a-new-influxdb-enterprise-role", + "create-a-new-influxdb-enterprise-user", + "create-a-new-influxdb-enterprise-user-role", + "create-a-new-non-admin-user", + "create-a-new-notification-rule", + "create-a-new-organization-directly-on-disk", + "create-a-new-remote-with-influxdb-cloud", + "create-a-new-table-with-new-columns", + "create-a-new-task-from-a-template", + "create-a-new-task-from-a-tickscript", + "create-a-new-template-for-batch-tasks", + "create-a-new-template-for-stream-tasks", + "create-a-new-tenant-in-microsoft-entra-id", + "create-a-new-user-directly-on-disk", + "create-a-notebook", + "create-a-notebook-from-a-preset", + "create-a-notification-endpoint", + "create-a-notification-endpoint-and-rule", + "create-a-notification-rule", + "create-a-pull-request", + "create-a-python-virtual-environment", + "create-a-query-client", + "create-a-read-only-1x-user", + "create-a-read-only-api-token", + "create-a-recording", + "create-a-replication-stream", + "create-a-resource-token", + "create-a-retention-policy", + "create-a-role", + "create-a-scheduled-plugin", + "create-a-schema-and-print-column-information", + "create-a-schema-using-the-influx-cli", + "create-a-schema-with-columns-format", + "create-a-scraper", + "create-a-scraper-in-the-influxdb-ui", + "create-a-script-from-a-file", + "create-a-script-using-raw-flux", + "create-a-slack-app", + "create-a-slack-client", + "create-a-stream-of-tables-from-an-array", + "create-a-system-token", + "create-a-system-token-for-health-information", + "create-a-table", + "create-a-table-with-a-custom-partition-template", + "create-a-table-with-custom-partitioning", + "create-a-table-with-tag-and-field-columns", + "create-a-target-database", + "create-a-task", + "create-a-task-from-a-file", + "create-a-task-from-a-template", + "create-a-task-from-the-data-explorer", + "create-a-task-in-the-influxdb-ui", + "create-a-task-in-the-task-ui", + "create-a-task-template-script", + "create-a-task-that-contains-a-flux-script", + "create-a-task-that-references-a-script", + "create-a-task-using-a-file", + "create-a-task-using-an-invokable-script", + "create-a-task-using-raw-flux", + "create-a-task-using-the-influx-cli", + "create-a-task-using-the-influxdb-api", + "create-a-telegraf-configuration", + "create-a-telegraf-configuration-via-stdin", + "create-a-telegram-bot", + "create-a-template", + "create-a-token", + "create-a-token-in-the-influxdb-ui", + "create-a-token-scoped-to-a-user", + "create-a-token-scoped-to-a-user-and-with-specified-read-and-write-permissions", + "create-a-token-that-expires-in-seven-days", + "create-a-token-using-the-influx-cli", + "create-a-token-using-the-influxdb-api", + "create-a-token-with-access-to-all-databases", + "create-a-token-with-access-to-all-system-information", + "create-a-token-with-access-to-multiple-databases", + "create-a-token-with-mixed-permissions-to-multiple-databases", + "create-a-token-with-multiple-permissions", + "create-a-token-with-read-and-write-access-to-a-database", + "create-a-token-with-read-and-write-access-to-all-databases", + "create-a-token-with-read-only-access-to-a-database", + "create-a-token-with-read-only-access-to-multiple-databases", + "create-a-token-with-specific-permissions", + "create-a-token-with-specified-permissions", + "create-a-token-with-specified-read-permissions", + "create-a-topic-handler", + "create-a-topic-handler-with-a-handler-file", + "create-a-trigger-for-a-specific-table", + "create-a-trigger-for-all-tables", + "create-a-user", + "create-a-user-against-a-follower-node", + "create-a-user-against-the-lead-node", + "create-a-user-for-recovery-purposes", + "create-a-v1-authorization", + "create-a-v1-authorization-with-read-and-write-permissions", + "create-a-valuesyaml-file", + "create-a-variable", + "create-a-variable-in-the-data-explorer", + "create-a-variable-in-the-settings-section", + "create-an-admin-token", + "create-an-alert", + "create-an-alert-email-task", + "create-an-alert-in-kapacitor-based-on-that-data", + "create-an-alert-rule", + "create-an-all-access-api-token", + "create-an-all-access-token", + "create-an-all-access-token-1", + "create-an-all-access-token-cli", + "create-an-all-access-token-in-the-influx-cli", + "create-an-annotation", + "create-an-api-token-with-read-and-write-access-to-specific-buckets", + "create-an-api-token-with-specified-read-and-write-permissions", + "create-an-authorization-for-the-device", + "create-an-empty-table", + "create-an-explicit-bucket-and-schema", + "create-an-http-request-plugin", + "create-an-influxdb-2x-connection-configuration", + "create-an-influxdb-client", + "create-an-influxdb-cloud-account", + "create-an-influxdb-cloud-connection-configuration", + "create-an-influxdb-connection", + "create-an-influxdb-data-source", + "create-an-influxdb-dbrp-mapping", + "create-an-influxdb-enterprise-user-or-role-with-kapacitor-permissions", + "create-an-influxdb-template", + "create-an-invokable-flux-script", + "create-an-invokable-script", + "create-an-operator-api-token", + "create-an-operator-token", + "create-an-operator-token-in-the-influx-cli", + "create-an-organization", + "create-an-organization-in-the-influxdb-ui", + "create-an-organization-using-the-influx-cli", + "create-an-organization-with-a-description", + "create-and-remove-topics", + "create-and-use-dashboard-variables", + "create-another-admin-user", + "create-authorizations", + "create-checks", + "create-chronograf-alert-rules", + "create-chronograf-dashboards", + "create-conditional-filters", + "create-continuous-query", + "create-custom-checks", + "create-custom-template-variables", + "create-dashboard-cells", + "create-database", + "create-dbrp-mappings", + "create-dbrp-mappings-for-unmapped-buckets", + "create-influxdb-and-kapacitor-connections", + "create-influxdb-clients", + "create-iot-virtual-device", + "create-kapacitor-flux-tasks", + "create-kapacitor-monitoring-alerts", + "create-multiple-restrictions-at-a-time", + "create-new-influxdb-tasks", + "create-notification-endpoints", + "create-notification-rules", + "create-or-edit-dashboards", + "create-organizations", + "create-retention-policies-with-create-retention-policy", + "create-retention-policy", + "create-sample-data-dashboards", + "create-scrapable-endpoints", + "create-subscription", + "create-subscriptions", + "create-the-api-to-list-devices", + "create-the-api-to-register-devices", + "create-the-application", + "create-the-consumer", + "create-the-downsampling-logic", + "create-the-flightquery-class", + "create-the-producer", + "create-the-producer-and-consumer-clients", + "create-the-producer-client", + "create-user", + "create-users", + "create-verify-and-upload-the-ldap-configuration-file", + "create-your-plugin-file", + "create-your-query", + "createdatabase", + "createempty", + "createfailures", + "createiteratorreq", + "createuserandrole", + "creating-a-database", + "creating-alerts-in-chronograf", + "credential-precedence", + "credentials-as-query-parameters", + "credentials-in-the-request-body", + "crit", + "critreset", + "crits_triggered", + "cron", + "cross-measurement-correlation", + "cross-organization-superadmin-permission", + "csgo", + "csv", + "csv-annotations", + "csv-data-with-ignored-column", + "csv-formatted-results", + "csv-package", + "csv-parsing-modes", + "csv-response-format", + "csv-variable-examples", + "csv-variable-use-cases", + "csv-with-annotation-shorthand", + "csv-with-constants", + "csv-with-non-default-boolean-values", + "csv-with-non-default-float-values", + "csv-with-non-default-integer-values", + "csv-with-non-default-timestamps", + "csv-with-non-default-uinteger-values", + "csv_timestamp_column", + "csv_timestamp_format", + "ctrlx_datalayer", + "cume_dist", + "cumulative-sum", + "cumulative_sum", + "cumulativesum", + "curl--k", + "curl-request", + "curl-request-1", + "curl-request-2", + "curl-the-ping-endpoint", + "current-limitations", + "current-row", + "current-system-time", + "current-utc-time", + "current_date", + "current_time", + "current_timestamp", + "currentfield", + "currentsegmentdiskbytes", + "cursor-type", + "cursors", + "custom", + "custom-aggregate-function-examples", + "custom-anomaly-detection-using-kapacitor", + "custom-api-token", + "custom-backup-window-_with_-object-storage-versioning", + "custom-backup-window-_without_-object-storage-versioning", + "custom-ca-certificates", + "custom-compile-telegraf", + "custom-dashboard-variables", + "custom-data-retention-periods", + "custom-date-selector", + "custom-function-examples", + "custom-functions", + "custom-mathematic-functions", + "custom-multiplication-function", + "custom-partition-data", + "custom-partitioning", + "custom-partitioning-not-supported", + "custom-percentage-function", + "custom-port-mapping", + "custom-task-http-endpoints", + "custom-template-variables", + "custom-timestamp-formats", + "custom-transformation-examples", + "custom-url", + "custom-url-field", + "custom-values-for-templates", + "customdetails", + "customize-cells", + "customize-column-names", + "customize-measurement-tag-and-field-columns-in-the-to-operation", + "customize-scale-settings", + "customize-single-stat", + "customize-the-deadman-check", + "customize-your-influxdb-oss-url", + "customized-config", + "cutset", + "d", + "daemon", + "dashboard", + "dashboard-id-in-the-cli", + "dashboard-id-in-the-ui", + "dashboard-sections-and-cells", + "dashboard-templates", + "dashboard-variable", + "dashboards", + "dashboards-total", + "dashboardtime", + "data", + "data-1", + "data-and-wal-directory-permissions", + "data-deletion", + "data-dir", + "data-directory", + "data-durability", + "data-encryption", + "data-exploration", + "data-explorer", + "data-flow", + "data-flow-for-writes", + "data-grouped-by-time-may-return-unexpected-timestamps", + "data-ingest", + "data-ingest-lifecycle-best-practices", + "data-insecure-tls", + "data-integrity", + "data-is-queryable-until-deleted", + "data-management", + "data-migration-guides", + "data-model", + "data-node", + "data-node-configuration", + "data-node-configuration-files-influxdbconf", + "data-node-configuration-settings", + "data-node-file-system-layout", + "data-node-file-system-overview", + "data-nodes", + "data-nodes-1", + "data-organization", + "data-points-older-than-retention-policy", + "data-replication", + "data-requirements", + "data-retention", + "data-retention-in-influxdb", + "data-retention-in-influxdb-cloud", + "data-retention-in-influxdb-cloud-dedicated", + "data-retention-in-influxdb-cloud-serverless", + "data-retention-in-influxdb-clustered", + "data-rows", + "data-sampling", + "data-scan-output", + "data-scanning-nodes-parquetexec-and-recordbatchesexec", + "data-section", + "data-section-1", + "data-service", + "data-set", + "data-settings", + "data-settings-for-the-tsm-engine", + "data-source", + "data-source-names", + "data-sources-and-things-to-note", + "data-sources-determine-data-structure", + "data-storage", + "data-stores", + "data-structure", + "data-type", + "data-type-conversion", + "data-type-examples", + "data-types", + "data-types-1", + "data-types-and-cast-operations", + "data-types-and-casting-operations", + "data-types-and-format", + "data-types-compatible-with-parameters", + "data-use-tls", + "data-variable", + "data-verification", + "data-visualization", + "data-write-example", + "data-written-just-before-a-snapshot-may-not-be-present-after-restoring", + "data_format", + "database", + "database--collectd", + "database--graphite", + "database--opentsdb", + "database--udp", + "database-and-cli-improvements", + "database-and-retention-policy-mapping", + "database-attributes", + "database-context-keys", + "database-engine", + "database-engine-1", + "database-engine-10", + "database-engine-11", + "database-engine-12", + "database-engine-13", + "database-engine-14", + "database-engine-15", + "database-engine-16", + "database-engine-17", + "database-engine-18", + "database-engine-19", + "database-engine-2", + "database-engine-20", + "database-engine-21", + "database-engine-3", + "database-engine-4", + "database-engine-5", + "database-engine-6", + "database-engine-7", + "database-engine-8", + "database-engine-9", + "database-limit", + "database-management", + "database-management-tools", + "database-management-with-influxql-not-supported", + "database-names-cant-be-updated", + "database-naming-examples", + "database-naming-restrictions", + "database-not-found", + "database-preparation", + "database-retention-period", + "database-table-and-column-limits", + "database-tokens", + "database-variable-use-cases", + "databases", + "datadog", + "datafusion", + "datafusion-config", + "datafusion-max-parquet-fanout", + "datafusion-num-threads", + "datafusion-query-plans", + "datafusion-runtime-disable-lifo-slot", + "datafusion-runtime-event-interval", + "datafusion-runtime-global-queue-interval", + "datafusion-runtime-max-blocking-threads", + "datafusion-runtime-max-io-events-per-tick", + "datafusion-runtime-thread-keep-alive", + "datafusion-runtime-thread-priority", + "datafusion-runtime-type", + "datafusion-use-cached-parquet-loader", + "datasets-over-individual-points", + "datasourcename", + "datatype", + "date", + "date-and-time-data-types", + "date-and-time-functions", + "date-and-time-literals", + "date-package", + "date-specifiers", + "date-time", + "date_bin", + "date_bin_gapfill", + "date_bin_wallclock", + "date_bin_wallclock_gapfill", + "date_format", + "date_part", + "date_trunc", + "datepart", + "datepart-like-queries", + "dates--times", + "datetime", + "datetimecurrent-timestamp-shortcode", + "datetrunc", + "db", + "db2", + "dbrp-http-api-now-matches-swagger-documentation", + "dbrps-map-to-influxdb-buckets", + "dbrps-map-to-influxdb-databases", + "dcos", + "deactivate-a-v1-authorization", + "deadman", + "deadman-check", + "debian-package-upgrade", + "debug-package", + "debug-pprof-enabled--false", + "debugpprof-http-endpoint", + "debugpprof-http-endpoints", + "debugpprofall-http-endpoint", + "debugrequests-http-endpoint", + "debugvars-http-endpoint", + "debugvars-removed", + "december-2021", + "decide-on-your-query-language", + "declarations", + "declined-or-late-payments", + "decode", + "decoder", + "decreasecooldown", + "dedicated-url-field", + "dedicated-urls", + "dedup", + "dedupkey", + "deduplicateexec", + "deep-linking", + "default", + "default-connection-profile-store-location", + "default-dbrp", + "default-querier-count-increased", + "default-query-concurrency-changed", + "default-retention-policies", + "default-scale-settings", + "default-storage-class", + "default-tags", + "default-templates", + "default-time-range", + "default-to-partial-write-semantics", + "default-usage", + "default-value", + "defaultapi", + "defaultconfig", + "defaultdisablewebpagepreview", + "defaultparsemode", + "defaults", + "defaultsilent", + "defaulttokenprefix", + "defaulturl", + "defaultvalue", + "define", + "define-a-custom-now-time", + "define-a-destination", + "define-a-geographic-region", + "define-a-handler-using-the-slackyaml-file", + "define-a-new-task", + "define-a-query-that-performs-time-based-aggregations", + "define-a-straight-forward-task", + "define-a-task-from-a-template", + "define-a-task-from-a-template-with-a-descriptor-file", + "define-a-template", + "define-api-responses", + "define-constants", + "define-custom-column-separator", + "define-custom-functions", + "define-custom-partitions", + "define-data-stream-variables", + "define-distance-units", + "define-environment-references", + "define-etcd-endpoints-with-command-line-flags", + "define-etcd-endpoints-with-the-etcd_endpoints-environment-variable", + "define-etcd-endpoints-with-tls-enabled", + "define-functions", + "define-functions-with-scoped-variables", + "define-or-update-a-task", + "define-parameter-defaults", + "define-stream-variables", + "define-task-options", + "define-template", + "define-template-variables-in-the-url", + "define-the-sideload-field", + "define-the-sideload-order", + "define-the-sideload-source", + "define-topic-handler", + "define-variables", + "define-your-query-patterns", + "defining-configuration-options-with-environment-variables", + "defining-the-kapacitor-task", + "defining-value-columns", + "definition", + "definition-1", + "definition-2", + "definition-3", + "definition-4", + "definitions", + "degrees", + "delete", + "delete-1", + "delete-a-bucket", + "delete-a-bucket-by-id", + "delete-a-bucket-by-name", + "delete-a-bucket-in-the-influxdb-ui", + "delete-a-bucket-using-the-influx-cli", + "delete-a-connection-configuration", + "delete-a-dashboard", + "delete-a-database", + "delete-a-database-named-mydb", + "delete-a-database-while-specifying-the-token-inline", + "delete-a-database-with-drop-database", + "delete-a-dbrp-mapping", + "delete-a-distinct-value-cache", + "delete-a-distinct-values-cache", + "delete-a-file-index", + "delete-a-file-index-from-a-database", + "delete-a-file-index-from-a-specific-table", + "delete-a-flux-task", + "delete-a-handler", + "delete-a-label", + "delete-a-last-value-cache", + "delete-a-last-values-cache", + "delete-a-measurement-from-a-single-shard", + "delete-a-measurement-from-a-tsm-file", + "delete-a-measurement-from-all-shards-in-the-database", + "delete-a-notebook", + "delete-a-notification-endpoint", + "delete-a-notification-rule", + "delete-a-recording", + "delete-a-remote", + "delete-a-replay", + "delete-a-replication", + "delete-a-role", + "delete-a-scraper", + "delete-a-scraper-from-the-influxdb-ui", + "delete-a-script", + "delete-a-secret", + "delete-a-secret-using-the-influx-cli", + "delete-a-secret-using-the-influxdb-cloud-ui", + "delete-a-shard-with-drop-shard", + "delete-a-table", + "delete-a-task", + "delete-a-task-in-the-influxdb-ui", + "delete-a-task-using-the-influxdb-api", + "delete-a-task-with-the-influx-cli", + "delete-a-template", + "delete-a-token", + "delete-a-token-using-the-influx-cli", + "delete-a-token-using-the-influxdb-api", + "delete-a-trigger", + "delete-a-user", + "delete-a-user-from-the-influxdb-ui", + "delete-a-user-using-the-influx-cli", + "delete-a-v1-authorization", + "delete-a-variable", + "delete-alert-rules", + "delete-all-measurement-data", + "delete-all-points-in-a-measurement", + "delete-all-points-in-a-specified-time-range", + "delete-all-points-in-a-specified-time-range-1", + "delete-all-points-within-a-specified-time-frame", + "delete-an-annotation", + "delete-an-api-token", + "delete-an-invokable-script", + "delete-an-organization", + "delete-an-organization-using-the-influx-cli", + "delete-checks", + "delete-data", + "delete-data-before-or-after-specified-time", + "delete-data-in-a-measurement-that-has-a-specific-tag-value", + "delete-data-to-reduce-high-cardinality", + "delete-data-using-the-api", + "delete-data-using-the-influx-cli", + "delete-kapacitor-flux-tasks", + "delete-measurements-with-drop-measurement", + "delete-multiple-connection-configurations", + "delete-multiple-databases", + "delete-node-labels", + "delete-notification-endpoints", + "delete-notification-rules", + "delete-points-by-field", + "delete-points-by-measurement", + "delete-points-by-tag-set", + "delete-points-for-a-specific-field-in-a-specified-time-range", + "delete-points-for-a-specific-field-in-a-specified-time-range-1", + "delete-points-in-a-measurement-with-a-specific-tag-value", + "delete-points-in-a-specific-measurement-with-a-specific-tag-value", + "delete-points-in-a-specific-measurement-with-a-specific-tag-value-1", + "delete-predicate", + "delete-predicate-examples", + "delete-recordings", + "delete-replays", + "delete-retention-policies-with-drop-retention-policy", + "delete-secrets", + "delete-secrets-using-the-influxdb-api", + "delete-series-with-delete", + "delete-tasks", + "delete-tasks-matching-a-glob-pattern", + "delete-templates", + "delete-tokens-in-the-influxdb-ui", + "delete-topic-handlers", + "delete-topics", + "delete-with-predicate-api-not-implemented", + "delete-your-organization", + "deleteall", + "deletes", + "deletetsm", + "deleting-a-database-cannot-be-undone", + "deleting-continuous-queries", + "deleting-data", + "deleting-data-1", + "deleting-data-without-a-delete-predicate", + "delimiter", + "demo-package-contents", + "dense_rank", + "deny-specific-cidr-ranges", + "dependency-update", + "dependency-updates", + "dependency-updates-1", + "dependency-updates-10", + "dependency-updates-11", + "dependency-updates-12", + "dependency-updates-13", + "dependency-updates-14", + "dependency-updates-15", + "dependency-updates-16", + "dependency-updates-17", + "dependency-updates-18", + "dependency-updates-19", + "dependency-updates-2", + "dependency-updates-20", + "dependency-updates-21", + "dependency-updates-22", + "dependency-updates-23", + "dependency-updates-24", + "dependency-updates-25", + "dependency-updates-26", + "dependency-updates-27", + "dependency-updates-28", + "dependency-updates-29", + "dependency-updates-3", + "dependency-updates-30", + "dependency-updates-31", + "dependency-updates-32", + "dependency-updates-33", + "dependency-updates-34", + "dependency-updates-35", + "dependency-updates-36", + "dependency-updates-37", + "dependency-updates-38", + "dependency-updates-39", + "dependency-updates-4", + "dependency-updates-40", + "dependency-updates-41", + "dependency-updates-42", + "dependency-updates-43", + "dependency-updates-44", + "dependency-updates-45", + "dependency-updates-46", + "dependency-updates-47", + "dependency-updates-48", + "dependency-updates-49", + "dependency-updates-5", + "dependency-updates-50", + "dependency-updates-51", + "dependency-updates-52", + "dependency-updates-53", + "dependency-updates-54", + "dependency-updates-55", + "dependency-updates-6", + "dependency-updates-7", + "dependency-updates-8", + "dependency-updates-9", + "deploy-a-cluster", + "deploy-and-use-the-catalog-service-by-default", + "deploy-on-aws", + "deploy-on-google-cloud-platform", + "deploy-the-1x-tick-stack", + "deploy-the-template", + "deploy-the-tick-sandbox-in-docker", + "deploy-the-tick-stack-in-kubernetes", + "deploy-with-kubernetes", + "deploy-your-cluster", + "deploying-in-air-gapped-environments", + "deployment", + "deployment-1", + "deployment-10", + "deployment-11", + "deployment-12", + "deployment-13", + "deployment-14", + "deployment-15", + "deployment-16", + "deployment-17", + "deployment-18", + "deployment-19", + "deployment-2", + "deployment-20", + "deployment-21", + "deployment-3", + "deployment-4", + "deployment-5", + "deployment-6", + "deployment-7", + "deployment-8", + "deployment-9", + "deprecated", + "deprecated-enterprise-web-console", + "deprecated-functions", + "deprecated-key", + "deprecation-removals", + "deprecations", + "deprecations-1", + "derivative", + "derive-average-values-from-a-summary-metric", + "desc", + "description", + "description-1", + "description-2", + "description-of-advanced-syntax", + "description-of-basic-syntax", + "description-of-syntax", + "description-of-syntax-1", + "description-of-syntax-2", + "description-of-syntax-3", + "description-of-syntax-4", + "description-of-syntax-5", + "design-for-performance", + "design-for-query-simplicity", + "design-to-query", + "destination", + "destination-database-must-be-empty", + "detailed-output-in-json", + "details", + "detect-a-field-type-mismatch", + "detect-a-measurement-mismatch", + "detect-if-a-host-hasnt-reported-since-a-relative-time", + "detect-if-a-host-hasnt-reported-since-a-specific-time", + "detect-when-a-series-stops-reporting", + "detect-when-the-state-changes-to-critical", + "detecting-and-repairing-entropy", + "detecting-anomalies", + "detecting-entropy", + "determine-a-state-with-existing-values", + "determine-your-backups-format", + "determine-your-batch-interval", + "determine-your-migration-start-time", + "determine-your-task-interval", + "develop-templates", + "developer-guides", + "device", + "dial-timeout", + "dialect-options", + "dict", + "dict-package", + "dictionaries", + "dictionary", + "dictionary-literals", + "dictionary-syntax", + "dictionary-types", + "difference", + "differences-between-a-heatmap-and-a-scatter-plot", + "differences-between-a-scatter-plot-and-a-heatmap", + "differences-between-tz-and-at-time-zone", + "different-data-structures-for-scraped-prometheus-metrics", + "different-results-for-the-same-query", + "digest", + "digital-signatures", + "dir", + "dir--varlibinfluxdbdata", + "dir--varlibinfluxdbmeta", + "dir-1", + "dir-2", + "directory-permissions", + "directory_monitor", + "disable", + "disable-a-specific-task", + "disable-a-task", + "disable-a-token", + "disable-a-token-using-the-influx-cli", + "disable-alert-handlers", + "disable-all-tasks-with-ids-that-match-a-glob-pattern", + "disable-anti-entropy-ae-before-restoring-a-backup", + "disable-delete-with-predicate-api", + "disable-development-features", + "disable-influxdb-subscriptions", + "disable-notification", + "disable-notification-endpoint", + "disable-parquet-mem-cache", + "disable-specific-alert-handlers", + "disable-subscriptions", + "disable-swap", + "disable-the-_internal-database-in-production", + "disable-the-_internal-database-in-production-clusters", + "disable-web-page-preview", + "disabled-administrative-features", + "disabled-influxdb-insights-monitoring", + "disabled-ports", + "disablelogicalrules", + "disablephysicalrules", + "disablewebpagepreview", + "disadvantages", + "discard", + "discord", + "discord-package", + "discordurl", + "discovery-services", + "discussion", + "disk", + "disk-size-metrics-per-shard", + "diskbytes", + "diskbytes-1", + "diskbytes-2", + "diskio", + "diskless-architecture", + "display-a-composite-value", + "display-a-dictionary", + "display-a-record", + "display-a-value-as-part-of-a-table", + "display-an-array", + "display-bytes", + "display-long-form-help-for-all-commands", + "display-runtime-configuration-in-use-by-influxd", + "display-short-form-help-for-all-commands", + "display-syntax", + "display-the-default-configurations", + "disque", + "distance", + "distance-units", + "distinct", + "distinct-and-the-into-clause", + "distinct-cache-eviction-interval", + "distinct-value-caches-are-flushed-when-the-server-stops", + "distinct-values-cache", + "distinct_cache", + "divisible-constraint", + "division", + "dmcache", + "dns_query", + "dnsmasq", + "do-i-need-to-verify-that-data-is-deleted", + "do-not-include-leading-zeros-in-duration-literals", + "do-not-modify-group-key-columns", + "do-not-use-duplicate-names-for-tags-and-fields", + "do-not-use-in-production", + "do-not-use-lvm", + "do-not-use-nfs-or-nfs-based-services", + "do-template-based-scripts-use-less-resources-or-are-they-just-an-ease-of-use-tool", + "do-you-depend-on-a-specific-cloud-provider-or-region", + "do-you-get-better-performance-with-running-one-complex-script-or-having-multiple-scripts-running-in-parallel", + "do-you-want-better-influxql-performance", + "do-you-want-to-migrate-all-your-time-series-data", + "do-you-want-to-selectively-migrate-your-time-series-data", + "do-you-want-to-use-sql-to-query-your-data", + "docker", + "docker-container-cannot-read-host-files", + "docker-default-directories", + "docker-example-with-environment-variables", + "docker-hub", + "docker-hub-default-paths", + "docker-hub-file-system-overview", + "docker-image", + "docker-install", + "docker-services", + "docker_log", + "docs-notifications", + "document-your-data-schema", + "document-your-environment", + "document-your-test-process", + "documentation", + "documentation-1", + "documentation-2", + "documenting-your-new-node", + "does-influxdb-have-a-file-system-size-limit", + "does-the-order-of-the-timestamps-matter", + "does-the-order-timestamps-in-a-query-matter", + "does-the-precision-of-the-timestamp-matter", + "doesnt-work-with-influxdb-clustered", + "dont-use-explicit-schemas-with-influxdb-3", + "dot-notation", + "double", + "double-exponential-moving-average-rules", + "double-quotes", + "double_exponential_moving_average", + "dovecot", + "downgrade", + "downgrade-influxdb", + "downgrade-to-influxdb-20", + "download-and-install", + "download-and-install-ca-certificate-files", + "download-and-install-chronograf", + "download-and-install-influxctl", + "download-and-install-influxdb-v2", + "download-and-install-instructions", + "download-and-install-on-linux-amd64", + "download-and-install-on-linux-armv8", + "download-and-install-telegraf", + "download-and-install-the-data-service", + "download-and-install-the-flight-sql-jdbc-driver", + "download-and-install-the-influx-cli", + "download-and-install-the-meta-service", + "download-and-run-telegraf-as-a-windows-service", + "download-and-run-the-sample-data-generator", + "download-and-run-the-sandbox", + "download-and-set-up-the-influx-cli", + "download-and-verify-the-configuration-file", + "download-and-write-the-data-to-influxdb", + "download-chronograf", + "download-from-the-command-line", + "download-from-your-browser", + "download-influxdb-3-core-binaries", + "download-influxdb-3-enterprise-binaries", + "download-influxdb-oss", + "download-install-and-configure-the-influx-cli", + "download-install-and-configure-the-influxctl-cli", + "download-kapacitor", + "download-or-generate-certificate-files", + "download-queries-to-a-csv-file", + "download-sample-air-sensor-data", + "download-sample-data", + "download-the-data-node-package", + "download-the-meta-node-package", + "download-the-tick-stack-components", + "downsample", + "downsample-and-retain-data", + "downsample-and-write-data-to-influxdb-cloud", + "downsample-by-calendar-month", + "downsample-by-calendar-months-and-years", + "downsample-by-calendar-week-starting-on-monday", + "downsample-by-week", + "downsample-data", + "downsample-data-by-applying-interval-based-aggregates", + "downsample-data-into-time-based-intervals", + "downsample-data-stored-in-influxdb", + "downsample-data-stored-in-influxdb-using-quix-streams", + "downsample-data-using-the-rdp-algorithm", + "downsample-data-using-the-rdp-algorithm-with-a-retention-rate-of-90", + "downsample-data-using-the-rdp-algorithm-with-an-epsilon-of-15", + "downsample-data-with-client-libraries", + "downsample-data-with-influxdb", + "downsample-data-with-notebooks", + "downsample-data-with-python-and-quix-streams", + "downsample-data-with-quix-streams", + "downsample-time-series", + "downsampling-and-data-retention", + "downsampling-process", + "dpdk", + "drivername", + "drivers", + "drop-a-list-of-columns", + "drop-a-user", + "drop-all-subscriptions", + "drop-columns-matching-a-predicate", + "drop-columns-matching-a-regex", + "drop-continuous-query", + "drop-database", + "drop-measurement", + "drop-retention-policy", + "drop-series", + "drop-series-from-the-index-with-drop-series", + "drop-shard", + "drop-subscription", + "drop-user", + "dropdata", + "dropdatabase", + "dropdown-items", + "droporiginalfieldname", + "dropped-columns", + "dropwizard", + "dry-run-prepending-csv-data-with-annotation-headers", + "dry-run-writing-annotated-csv-data-from-a-file", + "dry-run-writing-annotated-csv-data-from-a-url", + "dry-run-writing-annotated-csv-data-from-multiple-files", + "dry-run-writing-annotated-csv-data-from-multiple-sources", + "dry-run-writing-annotated-csv-data-from-multiple-urls", + "dry-run-writing-annotated-csv-data-via-stdin", + "dry-run-writing-line-protocol-from-a-file", + "dry-run-writing-line-protocol-from-a-url", + "dry-run-writing-line-protocol-from-multiple-files", + "dry-run-writing-line-protocol-from-multiple-sources", + "dry-run-writing-line-protocol-from-multiple-urls", + "dry-run-writing-line-protocol-via-stdin", + "ds389", + "dual-write-into-both-organizations", + "dual-write-to-influxdb-1x-and-influxdb-cloud", + "dual-write-to-influxdb-2x-and-influxdb-cloud", + "dual-write-to-influxdb-oss-and-influxdb-cloud", + "dual-write-to-influxdb-oss-and-influxdb-clustered", + "dumptsi", + "dumptsm", + "dumptsmwal", + "duplicate-a-column", + "duplicate-data", + "duplicate-data-points", + "duplicate-dbrp-mappings-per-database", + "duplicate-kapacitor-subscriptions", + "duplicate-keys", + "duplicate-output-tables", + "duplicate-points", + "duration", + "duration-literals", + "duration-syntax", + "duration-types", + "duration-units", + "duration_literal", + "durationcolumn", + "durationfield", + "durations", + "durationunit", + "dvc-size-and-persistence", + "dynamic-package", + "dynamic-queries", + "dynamic-sources", + "dynamic-type-syntax", + "dynamic-types", + "dynamic-types-are-not-supported-in-tables", + "dynamically-return-a-value-from-a-record", + "dynamically-set-a-column-value-using-existing-row-data", + "dynatrace", + "e", + "e2e-testing", + "east-us-virginia", + "ec2autoscale", + "ecs", + "edit-a-label", + "edit-an-annotation", + "edit-the-configuration-file", + "edit-the-configuration-file-directly-in-the-ui", + "edit-the-data-node-configuration-files", + "edit-token-permissions", + "editors-roleeditor", + "eks-irsa", + "elapsed", + "elapsed-and-units-greater-than-the-elapsed-time", + "elapsed-with-group-by-time-clauses", + "elasticsearch", + "elasticsearch_query", + "election-timeout", + "elements-of-line-protocol", + "elixir", + "elliptic-curve-cryptography", + "email", + "email-alerts-from-a-defined-handler", + "email-alerts-from-a-tickscript", + "embed-title", + "emitted", + "empty-tables", + "emptyexec", + "enable", + "enable-a-specific-task", + "enable-a-task", + "enable-a-token-using-the-influx-cli", + "enable-all-tasks-with-ids-that-match-a-glob-pattern", + "enable-and-configure-kapacitor-authentication", + "enable-and-configure-the-influxdb-v2-output-plugin", + "enable-and-disable-alert-rules", + "enable-and-disable-configuration-overrides", + "enable-authentication", + "enable-flux", + "enable-gzip-compression-in-influxdb-client-libraries", + "enable-gzip-compression-in-telegraf", + "enable-gzip-compression-in-the-telegraf-influxdb-output-plugin", + "enable-https", + "enable-https-with-influxdb", + "enable-object-versioning", + "enable-or-disable-a-check", + "enable-or-disable-a-flux-task", + "enable-or-disable-a-flux-task-api", + "enable-or-disable-a-token-in-the-influxdb-ui", + "enable-or-disable-notification-rules", + "enable-security-features", + "enable-shell-completion-optional", + "enable-short-term-object-versioning", + "enable-the-alert-stream", + "enable-the-batch-alert", + "enable-the-flux-query-log", + "enable-the-smtp-configuration", + "enable-tls-encryption", + "enable-tlsssl-https", + "enable-tsi", + "enabled", + "enabled--false", + "enabled--false-1", + "enabled--false-2", + "enabled--false-3", + "enabled--true", + "enabled--true-1", + "enabled--true-2", + "enabled--true-3", + "enabled--true-4", + "enabled-1", + "enabled-2", + "enabled-3", + "enabled-4", + "enabled-5", + "enabled-6", + "enabled-7", + "enabled-ports", + "enabledprofilers", + "encode", + "encode-a-dynamic-array-of-different-basic-types-as-json", + "encode-a-dynamic-record-as-json", + "encode-a-dynamic-type-as-json", + "encode-a-value-as-json-bytes", + "encode-credentials-with-curl", + "encode-credentials-with-flux", + "encode-credentials-with-javascript", + "encrypt-private-keys", + "end", + "end-of-life", + "end-of-life-of-native-collector---mqtt", + "endianness-optional", + "endpoint", + "endpoint-source", + "endpoints-available-in-influxdb-cloud", + "ends_with", + "engine-path", + "enqueued-write-timeout", + "enqueued-write-timeout--0", + "ensure-a-dynamic-type-contains-a-non-null-value", + "ensure-connectivity-between-machines", + "ensure-fips", + "ensure-read-access", + "enter-an-interactive-flux-repl", + "enter-cell-editor-mode", + "enter-presentation-mode-manually", + "enterprise", + "enterprise-1", + "enterprise-2", + "enterprise-3", + "enterprise-4", + "enterprise-5", + "enterprise-features", + "enterprise-license-settings", + "enterprise-overview", + "enterprise-parameter-changes", + "enterprise-urls", + "enterprise-users-and-permissions-reference", + "enterprise-web", + "enterprise-web-1", + "entitlements", + "entity", + "entitydisplayname", + "entityid", + "entityname", + "entries-definitions", + "enum", + "environment", + "environment-reference-substitution-not-supported", + "environment-variable", + "environment-variable-1", + "environment-variable-10", + "environment-variable-11", + "environment-variable-12", + "environment-variable-13", + "environment-variable-14", + "environment-variable-15", + "environment-variable-16", + "environment-variable-17", + "environment-variable-18", + "environment-variable-19", + "environment-variable-2", + "environment-variable-20", + "environment-variable-21", + "environment-variable-22", + "environment-variable-23", + "environment-variable-24", + "environment-variable-25", + "environment-variable-26", + "environment-variable-27", + "environment-variable-28", + "environment-variable-29", + "environment-variable-3", + "environment-variable-30", + "environment-variable-31", + "environment-variable-32", + "environment-variable-33", + "environment-variable-34", + "environment-variable-35", + "environment-variable-36", + "environment-variable-37", + "environment-variable-38", + "environment-variable-39", + "environment-variable-4", + "environment-variable-40", + "environment-variable-41", + "environment-variable-42", + "environment-variable-43", + "environment-variable-44", + "environment-variable-45", + "environment-variable-46", + "environment-variable-47", + "environment-variable-48", + "environment-variable-49", + "environment-variable-5", + "environment-variable-50", + "environment-variable-51", + "environment-variable-52", + "environment-variable-53", + "environment-variable-54", + "environment-variable-55", + "environment-variable-56", + "environment-variable-57", + "environment-variable-58", + "environment-variable-59", + "environment-variable-6", + "environment-variable-60", + "environment-variable-61", + "environment-variable-62", + "environment-variable-63", + "environment-variable-64", + "environment-variable-65", + "environment-variable-66", + "environment-variable-67", + "environment-variable-68", + "environment-variable-69", + "environment-variable-7", + "environment-variable-70", + "environment-variable-71", + "environment-variable-72", + "environment-variable-8", + "environment-variable-9", + "environment-variable-example", + "environment-variable-example-1", + "environment-variable-example-2", + "environment-variable-example-3", + "environment-variable-example-4", + "environment-variable-example-5", + "environment-variable-example-6", + "environment-variables", + "environment-variables-in-kap-files", + "environment-variables-in-src-files", + "environment-variables-not-in-configuration-file", + "epoch", + "epoch_time", + "epsilon", + "equal-to", + "equatable-constraint", + "equivalent-flux-task", + "erlang", + "erro0053", + "error-database-name-required", + "error-examples", + "error-max-series-per-database-exceeded--", + "error-message", + "error-message-1", + "error-message-2", + "error-message-3", + "error-messages-and-their-meaning", + "error-messages-in-the-ui", + "error-messages-when-exceeding-quotas-or-limits", + "error-messaging", + "error-messaging-1", + "error-parsing-query-found---expected-identifier-at-line---char--", + "error-parsing-query-found---expected-string-at-line---char--", + "error-parsing-query-found--expected-identifier-at-", + "error-parsing-query-mixing-aggregate-and-non-aggregate-queries-is-not-supported", + "errors", + "errors-1", + "errors-updates", + "escape-regular-expression-metacharacters-in-a-string", + "escaping-backslashes", + "essential-configuration-groups", + "establish-baseline-single-query-performance", + "establish-query-performance-degradation-conditions", + "estimate-query-cost", + "estimate-the-size-of-a-backup", + "estimate-the-total-partition-count", + "estimate_tdigest", + "etcd-flags", + "etcd-options", + "etcinfluxdbinfluxdb-metaconf", + "ethtool", + "eu-frankfurt", + "eval", + "evaluating-conditional-expressions", + "event", + "event-handlers", + "event-processing-flow", + "event_hubs", + "eventaction", + "eventclass", + "eventclasskey", + "eventhub_consumer", + "events", + "events-package", + "eventual-consistency", + "every", + "everycount", + "exact_mean", + "exact_selector", + "example", + "example-1", + "example-10", + "example-100", + "example-101", + "example-102", + "example-103", + "example-104", + "example-105", + "example-106", + "example-107", + "example-108", + "example-109", + "example-11", + "example-110", + "example-111", + "example-112", + "example-113", + "example-114", + "example-115", + "example-116", + "example-117", + "example-118", + "example-119", + "example-12", + "example-120", + "example-121", + "example-122", + "example-123", + "example-124", + "example-125", + "example-126", + "example-127", + "example-128", + "example-129", + "example-13", + "example-130", + "example-131", + "example-132", + "example-133", + "example-134", + "example-135", + "example-136", + "example-137", + "example-138", + "example-139", + "example-14", + "example-15", + "example-16", + "example-17", + "example-18", + "example-19", + "example-2", + "example-20", + "example-21", + "example-22", + "example-23", + "example-24", + "example-25", + "example-26", + "example-27", + "example-28", + "example-29", + "example-3", + "example-30", + "example-31", + "example-32", + "example-33", + "example-34", + "example-35", + "example-36", + "example-37", + "example-38", + "example-39", + "example-4", + "example-40", + "example-41", + "example-42", + "example-43", + "example-44", + "example-45", + "example-46", + "example-47", + "example-48", + "example-49", + "example-5", + "example-50", + "example-51", + "example-52", + "example-53", + "example-54", + "example-55", + "example-56", + "example-57", + "example-58", + "example-59", + "example-6", + "example-60", + "example-61", + "example-62", + "example-63", + "example-64", + "example-65", + "example-66", + "example-67", + "example-68", + "example-69", + "example-7", + "example-70", + "example-71", + "example-72", + "example-73", + "example-74", + "example-75", + "example-76", + "example-77", + "example-78", + "example-79", + "example-8", + "example-80", + "example-81", + "example-82", + "example-83", + "example-84", + "example-85", + "example-86", + "example-87", + "example-88", + "example-89", + "example-9", + "example-90", + "example-91", + "example-92", + "example-93", + "example-94", + "example-95", + "example-96", + "example-97", + "example-98", + "example-99", + "example-absolute-time-range", + "example-aggregate-queries", + "example-aggregaterate-output", + "example-aggregaterate-output-1", + "example-aggregaterate-output-2", + "example-alert-on-batch-data", + "example-alert-on-cpu-usage", + "example-alert-task-script", + "example-alerts", + "example-annotation-shorthand", + "example-api-requests", + "example-arrays", + "example-attributes", + "example-authentication-settings-in-the-kapacitorconf", + "example-barrier-based-on-idle-time", + "example-boolean-literals", + "example-box-shaped-region", + "example-changedetect-node", + "example-circular-region", + "example-close-a-client", + "example-configuration", + "example-configuration-file", + "example-connection-url", + "example-consoletty-format", + "example-continuous-query", + "example-counter-metric-in-prometheus-format", + "example-credentials-url-parameter", + "example-data", + "example-data-grouping", + "example-data-returned-by-from", + "example-data-variable", + "example-delete-predicate", + "example-derivative-output-1", + "example-derivative-output-2", + "example-dictionaries", + "example-difference-output", + "example-difference-output-1", + "example-difference-output-2", + "example-downsampling-task", + "example-downsampling-task-script", + "example-dual-write-telegraf-configuration", + "example-ec2-discovery-service-configuration", + "example-endpoints-in-prometheus-configuration-file", + "example-environment-variable-mappings", + "example-environment-variables", + "example-error-cannot-validate-certificate-for-ip_address", + "example-explain", + "example-explain-analyze", + "example-explain-analyze-statement", + "example-explain-analyze-verbose", + "example-explain-report-for-an-empty-result-set", + "example-explain-statement", + "example-export-and-import-for-disaster-recovery", + "example-filtering-show-tag-keys-by-time", + "example-float-literals", + "example-flux-script", + "example-function-type-signatures", + "example-functions", + "example-functions-with-defaults", + "example-functions-with-scoped-variables", + "example-gauge-data", + "example-gauge-metric-in-prometheus-data", + "example-github-oauth-configuration", + "example-group-key", + "example-group-key-instances", + "example-grouping-operations", + "example-handler-file", + "example-handler-file---defining-post-options-inline", + "example-handler-file---using-a-pre-configured-endpoint", + "example-helper-functions", + "example-hierarchical-alert-suppression", + "example-histogram-metric-in-prometheus-data", + "example-home-schema", + "example-import-data-from-a-file", + "example-influx-write-commands", + "example-influxdb-query-results", + "example-influxdb3-serve-command-options", + "example-influxdb_v2-configuration", + "example-initialize-a-client-using-batch-defaults-and-callbacks", + "example-initialize-a-client-with-synchronous-non-batch-defaults", + "example-initialize-with-credential-parameters", + "example-input", + "example-input-1", + "example-input-2", + "example-instantiate-options-for-batch-writing", + "example-instantiate-options-for-synchronous-writing", + "example-integer-literals", + "example-interpolation", + "example-interval-literals", + "example-joining-three-or-more-measurements", + "example-joining-two-measurements", + "example-line-protocol-elements-in-datatype-annotation", + "example-line-protocol-schemas", + "example-list-services-test-output", + "example-logfmt-format", + "example-logical-and-physical-plan", + "example-monitor-failed-tasks", + "example-multiply-function", + "example-normalized-counter-data", + "example-normalized-counter-data-1", + "example-normalized-counter-data-1-1", + "example-normalized-counter-data-1-2", + "example-normalized-counter-data-2", + "example-normalized-counter-data-2-1", + "example-normalized-counter-data-2-2", + "example-of-filling-gaps-in-data", + "example-of-mixing-data-types-and-line-protocol-elements", + "example-of-overlapping-data", + "example-of-running-service-tests", + "example-of-selecting-a-measurement-without-a-time-range", + "example-of-show-diagnostics-output", + "example-oidc-with-ad-fs", + "example-output", + "example-output-1", + "example-output-2", + "example-output-record", + "example-parse-prometheus-to-influxdb", + "example-partition-templates", + "example-physical-plan-for-a-select---order-by-query", + "example-pivoted-data", + "example-point-region", + "example-polygonal-region", + "example-predicate-function", + "example-prometheus-query-results", + "example-prometheus-query-results-1", + "example-python-plugin-for-wal-rows", + "example-queries", + "example-query", + "example-query-passing-json-parameters", + "example-query-passing-json-parameters-1", + "example-query-passing-url-encoded-parameters", + "example-query-passing-url-encoded-parameters-1", + "example-query-request-with-jwt-authentication", + "example-query-show-tables-on-the-servers-database", + "example-query-the-cpu-table-limiting-to-10-rows", + "example-query-to-count-machine-state", + "example-query-using-flight-sql", + "example-query-using-influxql", + "example-query-using-sql", + "example-query-with-statecount", + "example-query-with-stateduration", + "example-read-all-data-from-the-stream-and-return-a-pandas-dataframe", + "example-records", + "example-reduce-function", + "example-relative-time-ranges", + "example-results", + "example-results-1", + "example-results-2", + "example-results-3", + "example-retention-period-values", + "example-retrieve-the-result-schema-and-no-data", + "example-scraper-configuration", + "example-show-columns-output", + "example-show-tables-output", + "example-show-task-output", + "example-show-template-output", + "example-sorting-system-uptime", + "example-specify-the-root-certificate-path", + "example-sql-queries", + "example-square-function", + "example-start-the-influxdb-3-enterprise-server-with-your-license-email", + "example-start-the-influxdb-3-enterprise-server-with-your-license-file", + "example-status-message-template", + "example-string-literals", + "example-summary-metric-in-prometheus-data", + "example-table", + "example-taskflux", + "example-telegraf-configuration", + "example-telegraf-environment-variables", + "example-telegrafconf", + "example-template-variable-query-parameter", + "example-test-create-and-run-a-plugin", + "example-testcase-extension-to-prevent-feature-regression", + "example-tickscript", + "example-tickscript---defining-post-options-inline", + "example-tickscript---using-a-pre-configured-endpoint", + "example-tickscript-alert-for-disk-usage", + "example-timestamp-literals", + "example-tls-error", + "example-udf-configuration", + "example-unsigned-integer-literals", + "example-usage", + "example-use-batch-options-when-writing-file-data", + "example-using-influxdb-metrics-endpoint", + "example-values", + "example-view-the-schema-for-all-batches-in-the-stream", + "example-with-cli-options", + "example-with-environment-variables", + "example-write-a-line-protocol-string", + "example-write-and-query-data", + "example-write-command", + "example-write-data-to-a-bucket", + "example-write-data-using-a-dict", + "example-write-data-using-points", + "example-write-data-using-the-apiv3-http-api", + "example-write-data-using-the-influxdb3-cli", + "example-write-pivoted-data-to-influxdb", + "example_table", + "examplecsv", + "examples", + "examples-1", + "examples-10", + "examples-11", + "examples-12", + "examples-13", + "examples-14", + "examples-15", + "examples-16", + "examples-17", + "examples-18", + "examples-19", + "examples-2", + "examples-20", + "examples-21", + "examples-22", + "examples-23", + "examples-24", + "examples-25", + "examples-26", + "examples-27", + "examples-28", + "examples-29", + "examples-3", + "examples-30", + "examples-31", + "examples-32", + "examples-33", + "examples-34", + "examples-35", + "examples-36", + "examples-37", + "examples-38", + "examples-39", + "examples-4", + "examples-40", + "examples-41", + "examples-42", + "examples-43", + "examples-44", + "examples-45", + "examples-46", + "examples-47", + "examples-48", + "examples-49", + "examples-5", + "examples-50", + "examples-51", + "examples-52", + "examples-53", + "examples-54", + "examples-55", + "examples-56", + "examples-57", + "examples-58", + "examples-59", + "examples-6", + "examples-60", + "examples-61", + "examples-62", + "examples-63", + "examples-64", + "examples-65", + "examples-66", + "examples-67", + "examples-68", + "examples-69", + "examples-7", + "examples-8", + "examples-9", + "examples-how-to-apply-a-template-or-stack", + "examples-of-advanced-syntax", + "examples-of-basic-syntax", + "examples-of-call-expressions", + "examples-of-date-and-time-literals", + "examples-of-duration-literals", + "examples-of-duration-literals-1", + "examples-of-duration-types", + "examples-of-endpoints-with-authentication-enabled_", + "examples-of-expression-statements", + "examples-of-floating-point-literals", + "examples-of-function-literals", + "examples-of-geotemporal-line-protocol", + "examples-of-identifiers", + "examples-of-integer-literals", + "examples-of-log-output", + "examples-of-pipe-expressions", + "examples-of-regular-expression-literals", + "examples-of-short-notation-in-call-expressions", + "examples-of-special-characters-in-line-protocol", + "examples-of-string-literals", + "examples-of-variable-assignment", + "exceeded-limited_query-plan-limit", + "exceeded-limited_query_time-plan-limit", + "exceeded-limited_write-plan-limit", + "exceeded-rate-limits", + "exceptions", + "exclude", + "exec", + "exec-mem-pool-bytes", + "execd", + "execute-a-flux-query", + "execute-a-query", + "execute-a-task", + "execute-an-external-program-from-a-defined-handler", + "execute-an-external-program-from-a-tickscript", + "execute-an-influxql-command-and-quit-with--execute", + "execute-an-influxql-query", + "execute-an-sql-query", + "execute-flux-queries", + "execute-influxql-queries", + "execute-influxql-queries-from-a-file", + "execute-multiple-queries", + "execute-parameterized-influxql-queries", + "execute-parameterized-sql-queries", + "execute-queries", + "execute-query-example", + "execute-query-syntax", + "execute-the-query", + "executing-active", + "executing-duration-seconds", + "execution_time", + "executionplan-nodes", + "existence", + "existing-permissions-are-replaced-on-update", + "existing-users-are-admin-by-default", + "exists", + "exists-operator-with-a-subquery-in-the-where-clause", + "exit", + "exit-the-repl", + "exp", + "expandsourcesreq", + "expect-package", + "experimental-input-data", + "experimental-license-enforcement", + "experimental-output-line-protocol", + "experimental-package", + "experimental-packages-are-subject-to-change", + "expiration-behavior", + "explain", + "explain-analyze", + "explain-analyze-verbose", + "explain-report", + "explain-report-for-a-leading-edge-data-query", + "explain-report-for-the-leading-edge-data-query", + "explain-verbose", + "explanation-of-the-output", + "explicit-block", + "explicitly-map-column-names-to-new-column-names", + "explore-cell-data", + "explore-data-in-chronograf", + "explore-data-with-flux", + "explore-data-with-flux-and-the-data-explorer", + "explore-data-with-influxql", + "explore-metrics-with-influxdb", + "explore-sample-data", + "explore-your-schema", + "explore-your-schema-with-influxql", + "explore-your-schema-with-sql", + "exponential", + "exponential-moving-average-rules", + "exponential_moving_average", + "export", + "export-a-dashboard", + "export-a-database-and-all-its-retention-policies-to-a-file", + "export-a-specific-database-and-retention-policy-to-a-file", + "export-a-stack", + "export-a-stack-as-a-template", + "export-a-task", + "export-a-task-in-the-influxdb-ui", + "export-a-template", + "export-a-variable", + "export-all-bucket-or-dashboard-resources-with-label-foo", + "export-all-bucket-resources-and-with-label-foo", + "export-all-bucket-resources-as-a-template", + "export-all-data-from-_non-default_-data-and-wal-directories", + "export-all-data-in-a-bucket-as-line-protocol", + "export-all-data-in-a-database-and-retention-policy-to-a-file", + "export-all-data-to-a-compressed-file", + "export-all-data-to-a-file", + "export-all-databases-and-compress-the-output", + "export-all-resources", + "export-all-resources-associated-with-a-stack", + "export-all-resources-associated-with-label-foo", + "export-all-resources-in-an-organization-as-a-template", + "export-all-resources-to-a-template", + "export-an-updated-template", + "export-and-write-data", + "export-and-write-data-in-a-single-command", + "export-buckets-by-id", + "export-buckets-labels-and-dashboards-by-id", + "export-buckets-labels-and-dashboards-by-name", + "export-continuous-queries-before-upgrading", + "export-dashboards", + "export-data", + "export-data-and-other-artifacts", + "export-data-from-a-specific-database-and-retention-policy", + "export-data-in-measurements-as-line-protocol", + "export-data-in-specified-time-range-as-line-protocol", + "export-data-to-csv", + "export-data-within-time-bounds-to-a-file", + "export-only-dashboards-and-buckets-with-specific-labels", + "export-resources-both-associated-and-not-associated-with-a-stack", + "export-resources-filtered-by-labelname-or-resourcekind", + "export-resources-to-a-template", + "export-specific-resources", + "export-specific-resources-by-id", + "export-specific-resources-by-name", + "export-specific-resources-to-a-template", + "export-tasks", + "export-tsi-index-data-as-sql", + "exporting-and-importing-data", + "exporting-data", + "exposed-ports", + "expression", + "expression-statements", + "expressions", + "extend-a-record", + "extended-annotated-csv", + "extending-the-example", + "extending-tickscripts", + "extension-capabilities", + "external", + "external-1", + "external-2", + "external-3", + "external-plugin", + "extra-tips", + "extract", + "extract-a-column", + "extract-a-column-as-an-array", + "extract-a-column-from-the-table", + "extract-a-plugin-using-the-shim-wrapper", + "extract-a-row", + "extract-a-row-as-a-record", + "extract-a-row-from-the-table", + "extract-a-scalar-field-value", + "extract-a-table", + "extract-a-table-from-a-stream-of-tables", + "extract-an-array-of-column-values-and-display-them-in-a-table", + "extract-an-array-of-column-values-from-a-table", + "extract-scalar-row-data", + "extract-scalar-values", + "extract-the-correct-table", + "extract-the-first-row-from-a-table-as-a-record", + "extract-timestamps-from-a-time-column-using-rfc3339-format", + "f", + "f1", + "f2", + "factor", + "factorial", + "fail2ban", + "failed-to-add-to-replication-queue-metrics", + "failed-to-create-measurement", + "feature-flag-noprometheus", + "feature-flags", + "features", + "features-1", + "features-10", + "features-100", + "features-101", + "features-102", + "features-103", + "features-104", + "features-105", + "features-106", + "features-107", + "features-108", + "features-109", + "features-11", + "features-110", + "features-111", + "features-112", + "features-113", + "features-114", + "features-115", + "features-116", + "features-117", + "features-118", + "features-119", + "features-12", + "features-120", + "features-121", + "features-122", + "features-123", + "features-124", + "features-125", + "features-126", + "features-127", + "features-128", + "features-129", + "features-13", + "features-130", + "features-131", + "features-132", + "features-133", + "features-134", + "features-135", + "features-136", + "features-137", + "features-138", + "features-139", + "features-14", + "features-140", + "features-141", + "features-142", + "features-143", + "features-144", + "features-145", + "features-146", + "features-147", + "features-148", + "features-149", + "features-15", + "features-150", + "features-151", + "features-152", + "features-153", + "features-154", + "features-155", + "features-156", + "features-157", + "features-158", + "features-159", + "features-16", + "features-160", + "features-161", + "features-162", + "features-163", + "features-164", + "features-165", + "features-166", + "features-167", + "features-168", + "features-169", + "features-17", + "features-170", + "features-171", + "features-172", + "features-173", + "features-174", + "features-175", + "features-176", + "features-177", + "features-178", + "features-179", + "features-18", + "features-180", + "features-181", + "features-182", + "features-183", + "features-19", + "features-2", + "features-20", + "features-21", + "features-22", + "features-23", + "features-24", + "features-25", + "features-26", + "features-27", + "features-28", + "features-29", + "features-3", + "features-30", + "features-31", + "features-32", + "features-33", + "features-34", + "features-35", + "features-36", + "features-37", + "features-38", + "features-39", + "features-4", + "features-40", + "features-41", + "features-42", + "features-43", + "features-44", + "features-45", + "features-46", + "features-47", + "features-48", + "features-49", + "features-5", + "features-50", + "features-51", + "features-52", + "features-53", + "features-54", + "features-55", + "features-56", + "features-57", + "features-58", + "features-59", + "features-6", + "features-60", + "features-61", + "features-62", + "features-63", + "features-64", + "features-65", + "features-66", + "features-67", + "features-68", + "features-69", + "features-7", + "features-70", + "features-71", + "features-72", + "features-73", + "features-74", + "features-75", + "features-76", + "features-77", + "features-78", + "features-79", + "features-8", + "features-80", + "features-81", + "features-82", + "features-83", + "features-84", + "features-85", + "features-86", + "features-87", + "features-88", + "features-89", + "features-9", + "features-90", + "features-91", + "features-92", + "features-93", + "features-94", + "features-95", + "features-96", + "features-97", + "features-98", + "features-99", + "february-2022", + "fga-does-not-apply-to-flux", + "fibaro", + "field", + "field-key", + "field-key-variable-use-cases", + "field-keys", + "field-set", + "field-specification", + "field-templates", + "field-type-discrepancies", + "field-types", + "field-value", + "field_name_expansion-optional", + "field_selection-field_name-field_value-optional", + "fielddimensionsreq", + "fieldfn", + "fields", + "fields-and-tags-with-spaces", + "fields-arent-indexed", + "fields-sub-section", + "fields_int-sub-section", + "fieldscreate", + "figure-1-explain-report", + "file", + "file-block", + "file-bug-reports", + "file-index-settings", + "file-organization", + "file-source", + "file-system-layout", + "file-system-mounts", + "file_groups", + "filecount", + "filepath", + "fileset", + "filestat", + "filesystem-object-store", + "fill", + "fill-empty-tables", + "fill-empty-windows-of-time", + "fill-examples", + "fill-gaps-in-data", + "fill-null-values-with-a-specified-non-null-value", + "fill-null-values-with-the-previous-non-null-value", + "fill-with-a-specified-value", + "fill-with-linear-interpolation-if-there-are-not-two-values-to-interpolate-between", + "fill-with-no-data-in-the-queried-time-range", + "fill-with-previous-if-no-previous-value-exists", + "fill-with-the-previous-value", + "fill_option", + "fillfill_option", + "fillfill_option-1", + "filllinear-when-the-previous-or-following-result-falls-outside-the-querys-time-range", + "filllinear-when-the-previous-or-following-result-is-outside-the-queried-time-range", + "fillperiod", + "filter", + "filter-aggregate-values-based-on-a-threshold", + "filter-an-array", + "filter-array-of-integers", + "filter-based-on-influxdb-measurement-field-and-tag", + "filter-based-on-string-value-length", + "filter-based-on-the-presence-of-a-prefix-in-a-column-value", + "filter-based-on-the-presence-of-a-specific-characters-in-a-column-value", + "filter-based-on-the-presence-of-a-substring-in-a-column-value", + "filter-based-on-the-presence-of-a-suffix-in-a-column-value", + "filter-by-business-hours", + "filter-by-columns-with-digits-as-values", + "filter-by-columns-with-single-letter-lowercase-values", + "filter-by-columns-with-single-letter-uppercase-values", + "filter-by-date", + "filter-by-fields", + "filter-by-fields-and-tags", + "filter-by-numeric-values", + "filter-by-partition-id", + "filter-by-partition-key", + "filter-by-rows-that-contain-matches-to-a-regular-expression", + "filter-by-stack-id", + "filter-by-stack-name", + "filter-by-table-name", + "filter-by-value-type", + "filter-data-based-on-field-values", + "filter-data-based-on-specific-tag-and-field-values", + "filter-data-from-a-batch", + "filter-data-to-a-specified-region", + "filter-data-using-the-or-operator", + "filter-data-within-a-specific-time-period", + "filter-dbrp-mappings-by-bucket-id", + "filter-dbrp-mappings-by-database", + "filter-definitions", + "filter-for-admin-tokens", + "filter-geo-temporal-data-by-region", + "filter-meta-queries-by-time", + "filter-meta-query-results-using-template-variables", + "filter-null-values", + "filter-on-a-set-of-specific-fields", + "filter-out-rows-with-null-values", + "filter-stacks", + "filter-stacks-by-id", + "filter-stacks-by-name", + "filter-tasks-using-the-cli", + "filter-template-variables-with-other-template-variables", + "filter-templates", + "filter-the-list-of-tasks", + "filter-the-output-for-resource-tokens", + "filter-the-token-list", + "filter-values-based-on-thresholds", + "filterexec", + "filtering-examples", + "filters", + "final", + "final-output-record", + "final-output-record-and-table", + "final-processing", + "final-verification", + "find-and-count-unique-values-in-a-column", + "find-data-type-conflicts-and-schema-rejections", + "find-how-long-a-state-persists", + "find-out-instructions", + "find-out-toggle", + "find-parsing-errors", + "find-support-for-influxdb-3-core", + "find-support-for-influxdb-3-enterprise", + "find-supported-influx-cli-commands", + "find-the-average-of-values-closest-to-the-median", + "find-the-average-of-values-closest-to-the-quantile", + "find-the-first-regular-expression-match-in-each-row", + "find-the-index-of-the-first-occurrence-of-a-substring", + "find-the-index-of-the-first-occurrence-of-characters-from-a-string", + "find-the-index-of-the-last-occurrence-of-a-substring", + "find-the-index-of-the-last-occurrence-of-characters-from-a-string", + "find-the-point-with-the-median-value", + "find-the-point-with-the-quantile-value", + "find-the-value-representing-the-99th-percentile", + "find-the-value-that-represents-the-median", + "find-unique-values", + "find-user-ids-with-keycloak", + "find-user-ids-with-microsoft-entra-id", + "find_in_set", + "finding-all-starting-operation-log-entries", + "finding-all-trace-log-entries-for-an-influxdb-operation", + "fine-grained-authorization", + "fireboard", + "firehose", + "first", + "first-and-last", + "first-whitespace", + "first_value", + "fitted-model", + "fix-duplicate-tag-and-field-names", + "fix-measurements-with-more-than-200-total-columns", + "fix-measurements-with-more-than-250-total-columns", + "fixed-inconsistency-with-json-data-from-alerts", + "fixes", + "fixes-1", + "fixes-2", + "fixes-3", + "fixes-4", + "fixes-5", + "fixes-6", + "fixes-7", + "fixing-entropy-in-active-shards", + "flag", + "flag-input-types", + "flag-patterns-and-conventions", + "flags", + "flags-1", + "flags-2", + "flags-3", + "flags-4", + "flags-5", + "flags-6", + "flapping", + "flapping-dashboards", + "flatten", + "flight-queries-dont-use-dbrp-mappings", + "flight-sql-client", + "flight-sql-metadata-commands", + "flight-sql-query-execution-commands", + "flightsqlclientdo_get", + "flightsqlclientexecute", + "flightunavailableerror-could-not-get-default-pem-root-certs", + "float", + "float-field-value-examples", + "float-syntax", + "floating-point-literals", + "floats", + "floor", + "fluentd", + "flush-interval", + "flush-jitter", + "flushinterval", + "flux", + "flux---example-query-request", + "flux-1", + "flux-2", + "flux-3", + "flux-4", + "flux-5", + "flux-6", + "flux-7", + "flux-8", + "flux-advancement-highlights", + "flux-advancement-highlights-1", + "flux-builder-improvements", + "flux-controller", + "flux-data-model", + "flux-data-source-restrictions", + "flux-design-principles", + "flux-documentation", + "flux-enabled", + "flux-enabled--false", + "flux-example-to-query-schemas", + "flux-fixes", + "flux-functions", + "flux-group-keys-demo", + "flux-influxdb-versions", + "flux-log-enabled", + "flux-lsp-no-longer-maintained", + "flux-math-package", + "flux-must-have-access-to-the-file-system", + "flux-overview", + "flux-query", + "flux-query-basics", + "flux-query-guides", + "flux-query-management-settings", + "flux-query-results", + "flux-query-variable-use-cases", + "flux-script", + "flux-scripts-in-detail", + "flux-table-ops", + "flux-task-create", + "flux-task-list", + "flux-task-log-list", + "flux-task-retry-failed", + "flux-task-run-list", + "flux-task-run-retry", + "flux-task-update", + "flux-tasks", + "flux-to-bigquery-data-type-conversion", + "flux-to-cockroachdb-data-type-conversion", + "flux-to-mariadb-data-type-conversion", + "flux-to-mysql-data-type-conversion", + "flux-to-percona-data-type-conversion", + "flux-to-postgresql-data-type-conversion", + "flux-to-sap-hana-data-type-conversion", + "flux-to-snowflake-data-type-conversion", + "flux-to-sql-server-data-type-conversion", + "flux-to-sqlite-data-type-conversion", + "flux-to-vertica-data-type-conversion", + "flux-tools", + "flux-update", + "flux-updates", + "flux-updates-1", + "flux-updates-2", + "flux-updates-3", + "flux-v065-ready-for-production-use", + "flux-v07-technical-preview", + "flux-version-in-the-flux-repl", + "flux-vs-code-extension-no-longer-available", + "flux-vs-code-extension-no-longer-maintained", + "flux-vs-influxql", + "fluxqueryreq", + "fluxqueryreqdurationns", + "fn", + "footnote", + "for-alignment-with-the-influxdb-v1x-prometheus-remote-write-spec", + "for-automation-use-cases-only", + "force-a-script-to-exit-with-an-error-message", + "force-delete-an-active-trigger", + "force-snapshot-mem-threshold", + "forcefully-remove-an-unresponsive-meta-node-from-the-local-meta-node", + "forcefully-remove-an-unresponsive-meta-node-through-a-remote-meta-node", + "form-url-encoded", + "format", + "format--auto", + "format-the-output", + "format-with-americanew_york-timezone", + "format-with-utc-timezone", + "format-yyyy-mm-dd-hhmmss", + "formatting", + "forward-compatibility", + "frac", + "frame-boundaries", + "frame-clause", + "frame-units", + "free-plan", + "frees", + "frequently-asked-questions", + "frequently-overlooked-requirements", + "fritzbox", + "from", + "from-clause", + "from-clause-subqueries", + "from-does-not-require-a-package-import", + "from-subquery-examples", + "from-subquery-syntax", + "from_unixtime", + "fromlevel", + "fromnow", + "full-alerting-script", + "full-downsampling-script", + "full-example-flux-task-script", + "full-example-query", + "full-example-task-with-invokable-script", + "full-outer-join", + "full-outer-join-example", + "full-outer-join-result", + "full-outer-join-results", + "full-query", + "full-screen-mode", + "full-tickscript-example", + "fullscreen-code-placeholder", + "fully-qualified-reference", + "function", + "function-behavior", + "function-block", + "function-categories", + "function-clientquery", + "function-clientquerywithoptions", + "function-definition", + "function-definition-syntax", + "function-flight_client_optionskwargs", + "function-literals", + "function-new", + "function-operators", + "function-requirements", + "function-support", + "function-syntax", + "function-type-signature", + "function-type-signature-structure", + "function-types", + "function-with-parameters", + "function-without-parameters", + "function-write_client_optionskwargs", + "functionname", + "functionoperations", + "functionparameters", + "functions", + "functions-pane", + "further-information", + "future-of-flux-new", + "g", + "garbage-collector", + "garbage-collector-scaling-strategies", + "gather-debug-information", + "gather-system-information", + "gauge", + "gauge-behavior", + "gauge-controls", + "gauge-example", + "gauge-examples", + "gc-garbage-collection-duration-seconds", + "gc_sys_bytes", + "gcc_pu_fraction", + "gcd", + "gen-package", + "gen1-duration", + "general", + "general-admin-and-non-admin-user-management", + "general-aggregate-functions", + "general-authentication-flags", + "general-authentication-options", + "general-improvements", + "general-information", + "general-options", + "general-options-and-remarks", + "general-syntax-for-functions", + "general-updates", + "general-updates-1", + "general-updates-2", + "generate-a-configuration-file", + "generate-a-configuration-with-only-specific-plugins", + "generate-a-histogram-with-linear-bins", + "generate-a-histogram-with-logarithmic-bins", + "generate-a-jwt-token-that-expires-in-5-minutes", + "generate-a-list-of-exponentially-increasing-values", + "generate-a-list-of-linearly-increasing-values", + "generate-a-new-operator-token", + "generate-a-pprof-like-profile-from-trace", + "generate-a-telegraf-configuration-file", + "generate-a-token-secret", + "generate-influxdb-check-data", + "generate-package", + "generate-s2-cell-id-tokens", + "generate-s2-cell-id-tokens-language-specific-libraries", + "generate-s2-cell-id-tokens-with-flux", + "generate-s2-cell-id-tokens-with-telegraf", + "generate-sample-data", + "generate-self-signed-certificates", + "generate-your-jwt-token", + "generating-a-histogram-with-linear-bins", + "generating-a-histogram-with-logarithmic-bins", + "generating-test-data", + "generic-oauth-20-authentication-flags", + "generic-oauth-20-authentication-options", + "geo-package", + "geo-s2-cells-non-strict", + "geo-s2-cells-strict", + "geo-schema-requirements", + "geo-temporal-data", + "geoip", + "geometry", + "geotemporal", + "get-a-list-of-leaders", + "get-a-task", + "get-a-telegram-api-access-token", + "get-a-template", + "get-a-topic-handler", + "get-all-runtime-profiles", + "get-cluster-information", + "get-key-values-from-explicitly-defined-columns", + "get-more-accurate-base-e-exponentials-for-values-near-zero", + "get-rate-limits-for-a-different-influxdb-cloud-organization", + "get-rate-limits-for-your-influxdb-cloud-organization", + "get-request-format", + "get-started", + "get-started-home-sensor-data", + "get-started-using-go-to-query-influxdb", + "get-started-using-python-to-query-influxdb", + "get-started-using-the-java-flight-sql-client-to-query-influxdb", + "get-started-with-chronograf", + "get-started-with-examples", + "get-started-with-flux", + "get-started-with-flux-and-influxdb", + "get-started-with-influxdb-oss", + "get-started-with-kapacitor", + "get-started-with-tasks", + "get-started-with-the-example-app", + "get-started-with-the-shared-api", + "get-started-working-with-data", + "get-status", + "get-the-full-downsampling-code-files", + "get-the-length-of-an-array", + "get-the-status-of-an-influxdb-oss-instance", + "get-your-hipchat-api-access-token", + "get-your-telegram-chat-id", + "getting-data-in-the-database", + "getting-slightly-different-results", + "getting-started-with-influxdb-enterprise", + "getting-started-with-tick-and-docker-compose", + "gis-geometry-definitions", + "github", + "github-organizations-optional", + "github-specific-oauth-20-authentication-flags", + "github-specific-oauth-20-authentication-options", + "given-the-following-input-data", + "global", + "global-admin", + "global-flags", + "global-flags-1", + "global-flags-2", + "global-limits", + "global-options", + "global-settings", + "global-tags", + "glossary", + "gnmi", + "go", + "go-arrow-flight-client", + "go-flight-client", + "go-regex-testers", + "go-regular-expression-syntax", + "go-runtime-statistics", + "go-version", + "goal", + "going-further", + "gomaxprocs-environment-variable", + "good-measurements-schema", + "good-tags-schema", + "google-cloud-bigtable", + "google-cloud-platform-gcp", + "google-cloud-service", + "google-service-account", + "google-specific-oauth-20-authentication-flags", + "google-specific-oauth-20-authentication-options", + "google_cloud_storage", + "gopher", + "goroutines", + "gossip-frequency", + "got", + "gotcha---single-versus-double-quotes", + "gotchas", + "gpu-monitoring-example", + "grafana", + "grafana-103", + "grafana-dashboards-by-default", + "grammar", + "grant", + "grant-access-to-specific-series-in-a-measurement", + "grant-administrative-privileges-to-an-existing-user", + "grant-all-permission", + "grant-database-level-permissions-to-roles", + "grant-database-level-permissions-to-users", + "grant-kapacitor-permissions-to-the-new-role", + "grant-kapacitor-permissions-to-the-new-user", + "grant-measurement-level-permissions-to-users", + "grant-network-access", + "grant-permissions-by-database", + "grant-permissions-by-measurement-in-a-database", + "grant-permissions-by-series-in-a-database", + "grant-permissions-to-a-user-for-a-specific-database", + "grant-permissions-to-a-user-for-all-databases", + "grant-read-permission", + "grant-read-write-or-all-database-privileges-to-an-existing-user", + "grant-series-level-permissions-in-a-measurement-to-roles", + "grant-series-level-permissions-in-a-measurement-to-users", + "grant-series-level-permissions-to-roles", + "grant-series-level-permissions-to-users", + "grant-write-permission", + "graph", + "graph--single-stat", + "graph--single-stat-behavior", + "graph--single-stat-controls", + "graph--single-stat-examples", + "graph-behavior", + "graph-controls", + "graph-examples", + "graph-with-linear-interpolation-and-static-legend", + "graph-with-smooth-interpolation-and-hover-legend", + "graph-with-step-interpolation-and-no-visible-legend", + "graphing-the-percentage-difference-between-the-measurements", + "graphite", + "graphite-protocol-support-in-influxdb", + "graphite-settings", + "graphite_tag_support", + "graphs-and-dashboards", + "graylog", + "greater-than", + "greater-than-or-equal", + "grok", + "groundwork", + "group", + "group-and-aggregate-data", + "group-and-aggregate-query-results-into-1-hour-intervals-and-offset-time-boundaries-by--15-minutes", + "group-and-aggregate-query-results-into-1-hour-intervals-and-offset-time-boundaries-by-15-minutes", + "group-and-aggregate-query-results-into-1-hour-windows", + "group-and-aggregate-query-results-into-1-week-intervals-by-tag", + "group-and-aggregate-query-results-into-30-minute-intervals-and-fill-gaps-using-linear-interpolation", + "group-and-aggregate-query-results-into-30-minute-intervals-and-fill-gaps-with-0", + "group-and-aggregate-query-results-into-30-minute-intervals-and-fill-gaps-with-previous-values", + "group-by-aliases", + "group-by-any-column", + "group-by-clause", + "group-by-clause-behaviors", + "group-by-columns", + "group-by-cpu", + "group-by-cpu-and-time", + "group-by-cpu-and-time-output-tables", + "group-by-cpu-output-tables", + "group-by-everything-except-time", + "group-by-example", + "group-by-host-and-region", + "group-by-result-columns", + "group-by-specific-columns", + "group-by-tags", + "group-by-tags-examples", + "group-by-time", + "group-by-time-and-fill-gaps", + "group-by-time-and-fill-gaps-1", + "group-by-time-examples", + "group-by-time-intervals", + "group-by-time-intervals-and-fill", + "group-by-time-output-tables", + "group-by-time-with-offset", + "group-data", + "group-data-by-a-single-tag", + "group-data-by-all-tags", + "group-data-by-area", + "group-data-by-more-than-one-tag", + "group-data-by-specific-columns", + "group-data-by-tag-keys-that-match-a-regular-expression", + "group-data-by-tag-values", + "group-data-by-track-or-route", + "group-data-into-15-minute-time-intervals-by-tag", + "group-example", + "group-examples", + "group-function", + "group-geo-temporal-data", + "group-geotemporal-data-by-geographic-area", + "group-geotemporal-data-into-tracks", + "group-geotemporal-data-into-tracks-and-sort-by-specified-columns", + "group-key", + "group-key-demo", + "group-keys", + "group-query-results-by-a-single-tag", + "group-query-results-by-all-tags", + "group-query-results-by-more-than-one-tag", + "group-query-results-by-tags-that-start-with-l", + "group-query-results-into-12-minute-intervals", + "group-query-results-into-12-minute-intervals-and-by-a-tag-key", + "group-query-results-into-12-minute-intervals-and-shift-the-preset-time-boundaries-back", + "group-query-results-into-12-minute-intervals-and-shift-the-preset-time-boundaries-forward", + "group-query-results-into-12-minutes-intervals-and-by-a-tag-key", + "group-query-results-into-18-minute-intervals-and-shift-the-preset-time-boundaries-forward", + "groupby", + "groupby-with-aggregated-data", + "groupbymeasurement", + "groupcolumns", + "grouped-tables", + "grouping", + "grouping-by-tag-and-no-time-range-returns-unexpected-timestamps", + "grouping-modes", + "groupname", + "groupnametag", + "groups", + "grpc-requests-not-ok", + "grpc-requests-ok", + "guidelines-for-in-memory-caching", + "guidelines-per-cluster", + "guidelines-per-node", + "gzip", + "h", + "h2-this-is-a-header2", + "h2-this-is-a-header2-1", + "h2-this-is-a-header2-2", + "h2-this-is-a-header2-3", + "h2-this-is-a-header2-4", + "h2-this-is-a-header2-5", + "h3-this-is-a-header3", + "h3-this-is-a-header3-1", + "h3-this-is-a-header3-2", + "h3-this-is-a-header3-3", + "h3-this-is-a-header3-4", + "h3-this-is-a-header3-5", + "h4-this-is-a-header4", + "h4-this-is-a-header4-1", + "h4-this-is-a-header4-2", + "h4-this-is-a-header4-3", + "h4-this-is-a-header4-4", + "h4-this-is-a-header4-5", + "h5-this-is-a-header5", + "h5-this-is-a-header5-1", + "h5-this-is-a-header5-2", + "h5-this-is-a-header5-3", + "h5-this-is-a-header5-4", + "h5-this-is-a-header5-5", + "h6-this-is-a-header6", + "h6-this-is-a-header6-1", + "h6-this-is-a-header6-2", + "h6-this-is-a-header6-3", + "h6-this-is-a-header6-4", + "h6-this-is-a-header6-5", + "handle-duplicate-data-points", + "handle-kapacitor-alerts-during-scheduled-downtime", + "handle-late-arriving-data", + "handle-read-and-write-queries-first", + "handle-requests-for-device-information", + "handle-write-and-delete-responses", + "handle-write-responses", + "handler-file-options", + "handlers", + "handling-null-fill-values-in-outer-joins", + "handling-time-intervals-with-no-data", + "haproxy", + "hard-delete", + "hardening-enabled", + "hardware-requirements-for-influxdb", + "hardware-separation", + "hardware-sizing-guidelines", + "hash-package", + "hashing-functions", + "haskell", + "hatch", + "having-clause", + "having-clause-subqueries", + "having-clause-with-correlated-subquery", + "having-clause-with-non-scalar-subquery", + "having-clause-with-scalar-subquery", + "having-subquery-examples", + "having-subquery-syntax", + "hddtemp", + "header", + "header-row", + "headers", + "headers-1", + "headers-2", + "headers-3", + "headerscsv", + "heading", + "heading-1", + "health", + "health-endpoint-responses", + "health-http-endpoint", + "healthy-upstream-ingesters-per-router", + "heap_alloc_bytes", + "heap_idle_bytes", + "heap_in_use_bytes", + "heap_objects", + "heap_released_bytes", + "heap_sys_bytes", + "heapalloc", + "heapidle", + "heapinuse", + "heapobjects", + "heapreleased", + "heapsys", + "heartbeat-timeout", + "heatmap", + "heatmap-behavior", + "heatmap-controls", + "heatmap-examples", + "helm-air-gapped-deployment", + "helm-standard-deployment-with-internet-access", + "help", + "help-bar", + "help-bar-updates", + "helper-functions", + "helpful", + "helpful-links", + "helpful-links-1", + "helpful-links-2", + "heres-a-codeblock-with-a-title", + "heres-a-title-for-this-codeblock", + "heroku-organizations-optional", + "heroku-specific-oauth-20-authentication-flags", + "heroku-specific-oauth-20-authentication-options", + "hex-package", + "hex_encoding-optional", + "hh-enterprise-only", + "hh_database-enterprise-only", + "hh_node-enterprise-only", + "hh_processor-enterprise-only", + "high-availability", + "high-availability-with-a-dedicated-compactor", + "high-availability-with-read-replicas-and-a-dedicated-compactor", + "high-cardinality-key-columns", + "high-cardinality-limits", + "high-disk-usage", + "highlights", + "highlights-1", + "highlights-10", + "highlights-11", + "highlights-12", + "highlights-13", + "highlights-14", + "highlights-15", + "highlights-16", + "highlights-17", + "highlights-18", + "highlights-19", + "highlights-2", + "highlights-3", + "highlights-4", + "highlights-5", + "highlights-6", + "highlights-7", + "highlights-8", + "highlights-9", + "hinted-handoff", + "hinted-handoff-1", + "hinted-handoff-directory", + "hinted-handoff-improvements", + "hinted-handoff-settings", + "hipchat", + "hipchat-api-access-token", + "hipchat-setup", + "histogram", + "histogram-behavior", + "histogram-controls", + "histogram-examples", + "histogram-function", + "histogram-settings", + "histogram-visualization", + "histogram-visualization-data-structure", + "histograms", + "history", + "hold_period", + "holt_winters", + "holt_winters-and-receiving-fewer-than-n-points", + "holtwinters", + "holtwinterswithfit", + "home-sensor-actions-data", + "home-sensor-data", + "home-sensor-data-line-protocol", + "homebrew-default-directories", + "horizontal-scaling", + "horizontally-scale-a-component", + "host", + "host-renaming", + "host1yml", + "hosting-influxdb-oss-on-aws", + "hostname", + "hot-shards", + "hover-legend", + "how-a-query-plan-distributes-data-for-scanning", + "how-authentication-works", + "how-can-a-non-admin-user-use-a-database-in-the-influxdb-cli", + "how-can-i-derive-a-state-from-multiple-field-values", + "how-can-i-identify-my-influxdb-version", + "how-can-i-identify-my-version-of-influxdb", + "how-can-i-identify-the-version-of-flux-im-using-in-influxdb", + "how-can-i-optimize-kapacitor-tasks", + "how-can-i-remove-series-from-the-index", + "how-can-i-tell-what-type-of-data-is-stored-in-a-field", + "how-data-flows-through-influxdb-3-core", + "how-data-flows-through-influxdb-3-enterprise", + "how-do-i-cancel-a-long-running-query", + "how-do-i-connect-chronograf-to-an-influxdb-enterprise-cluster", + "how-do-i-include-a-single-quote-in-a-password", + "how-do-i-increase-my-organizations-rate-limits-and-quotas", + "how-do-i-manage-payment-methods", + "how-do-i-perform-mathematical-operations-in-an-influxql-function", + "how-do-i-perform-mathematical-operations-within-a-function", + "how-do-i-query-data-across-measurements", + "how-do-i-query-data-by-a-tag-with-a-null-value", + "how-do-i-query-data-with-an-identical-tag-key-and-field-key", + "how-do-i-remove-series-from-the-index", + "how-do-i-reset-my-password", + "how-do-i-select-data-with-a-tag-that-has-no-value", + "how-do-i-structure-fields-as-columns-like-influxql", + "how-do-i-switch-between-influxdb-cloud-accounts", + "how-do-i-use-influxql-with-influxdb-cloud", + "how-do-i-use-influxql-with-influxdb-v2x", + "how-do-i-use-the-influxdb-cli-to-return-human-readable-timestamps", + "how-do-i-verify-that-kapacitor-is-receiving-data-from-influxdb", + "how-do-i-view-data-my-data-usage", + "how-do-i-write-integer-and-unsigned-integer-field-values", + "how-do-i-write-integer-field-values", + "how-do-i-write-to-a-non-default-retention-policy-with-the-influxdb-cli", + "how-do-selector-functions-work", + "how-do-you-use-influxdb-3", + "how-does-influxdb-handle-duplicate-points", + "how-does-influxdb-handle-field-type-discrepancies-across-shards", + "how-does-kapacitor-handle-high-load", + "how-does-retrying-a-task-affect-relative-time-ranges", + "how-is-the-influxdata-platform-tick-different-from-prometheus", + "how-it-works", + "how-join-functions-work", + "how-kapacitor-subscriptions-work", + "how-partitioning-works", + "how-prometheus-metrics-are-parsed-in-influxdb", + "how-reduce-works", + "how-should-i-run-influxdb-in-kubernetes", + "how-subscriptions-work", + "how-write-requests-work-in-the-influxdb-cloud-api", + "http", + "http-access-log", + "http-access-log-format", + "http-access-logging", + "http-api", + "http-api-statistics", + "http-bind", + "http-bind-address", + "http-endpoint-settings", + "http-endpoints-settings", + "http-headers", + "http-idle-timeout", + "http-input-plugin", + "http-package", + "http-read-header-timeout", + "http-read-timeout", + "http-request-error-rate-servers-pov-at-router", + "http-requests-example", + "http-response-codes", + "http-response-summary", + "http-section", + "http-section-1", + "http-timeout", + "http-timeout--30s", + "http-write-timeout", + "http_listener", + "http_listener_v2", + "http_proxy", + "http_response", + "httpd", + "httpheaders", + "httpout", + "httppost", + "https-certificate", + "https-certificate--etcsslinfluxdbpem", + "https-certificate-1", + "https-enabled", + "https-enabled--false", + "https-enabled-1", + "https-insecure-tls", + "https-private-key", + "https-private-key--", + "https-private-key-1", + "https_proxy", + "huebridge", + "hugepages", + "human-readable-cluster-metrics", + "human-string-functions", + "humanbytes", + "hutils", + "i", + "icinga2", + "id", + "id-1", + "ideal-use-cases-for-influxdb-stacks", + "idealcycletime", + "identifier", + "identifier-types", + "identifiers", + "identify-and-update-unoptimized-queries", + "identify-performance-requirements", + "identify-the-version-to-upgrade-to", + "identify-your-current-influxdb-clustered-package-version", + "identity", + "identity-provider-credentials", + "identity-provider-requirements", + "idfield", + "idle", + "idle-timeout", + "idlestreams", + "idp", + "ids", + "idtag", + "idx", + "if", + "if-duplicating-data-is-not-feasible", + "if-possible-provide-a-synthetic-dataset", + "if-the-every-interval-is-greater-than-the-group-by-time-interval", + "if-the-for-interval-is-less-than-the-execution-interval", + "ifname", + "ifnull", + "ignore-case-when-comparing-two-strings", + "ignore-columns", + "ignore-null-values-in-a-custom-aggregate-function", + "ignored", + "iis", + "immediate-write-using-the-http-api", + "implementing-the-housedb-output", + "implicit-block", + "import-a-dashboard", + "import-a-task", + "import-a-variable", + "import-and-export-chronograf-dashboards", + "import-and-generate-sample-sensor-data", + "import-dashboard-templates", + "import-data-from-a-file", + "import-declaration", + "import-monitoring-dashboards", + "import-the-sample-data-dashboard", + "import-the-sample-sensor-information", + "important-changes", + "important-changes-1", + "important-changes-10", + "important-changes-11", + "important-changes-2", + "important-changes-3", + "important-changes-4", + "important-changes-5", + "important-changes-6", + "important-changes-7", + "important-changes-8", + "important-changes-9", + "important-compaction-configuration-settings", + "important-considerations", + "important-considerations-before-you-begin", + "important-definitions", + "important-if-using-windows-specify-the-windows-certificate-path", + "important-information-about-high-write-loads", + "important-notes", + "important-notes-about-providing-user-credentials", + "important-notes-about-timestamps", + "important-things-to-know-about-the-distinct-value-cache", + "important-things-to-know-about-the-last-value-cache", + "important-things-to-note", + "important-things-to-note-about-variable-queries", + "important-to-know", + "important-to-note", + "important-update", + "importing-data", + "importing-the-client", + "importing-the-module", + "importing-the-package", + "improve-performance-of-time-bound-subqueries", + "improve-your-schema", + "in", + "in-conclusion", + "in-memory-cache", + "in-memory-indexing-and-the-time-structured-merge-tree-tsm", + "in-memory-indexing-option", + "in-memory-inmem-index-settings", + "in-operator-with-a-list-in-the-where-clause", + "in-operator-with-a-subquery-in-the-where-clause", + "in-progress-features", + "in-this-section", + "inaccessible-or-decommissioned-subscription-endpoints", + "inactivate-an-api-token", + "incident-response", + "include-a-from-clause", + "include-a-secret-when-installing-a-template", + "include-a-where-clause", + "include-authentication-credentials-in-the-kapacitor-url", + "include-dynamic-types-in-a-table", + "include-null-values-in-an-ad-hoc-stream-of-tables", + "include-partial-gigabytes", + "include-tag-and-field-counts-in-your-cardinality-summary", + "include-tagpass-and-tagdrop-at-the-end-of-your-plugin-definition", + "include-the-string-representation-of-a-dictionary-in-a-table", + "include-the-string-representation-of-a-record-in-a-table", + "include-the-string-representation-of-an-array-in-a-table", + "include-the-string-representation-of-bytes-in-a-table", + "include-the-token-in-http-requests", + "include-user-definable-resource-names", + "includenull", + "including-multiple-template-variables-in-the-url", + "inconsistent-data-types", + "increase", + "increasecooldown", + "increment-the-timestamp", + "incremental-and-full-backups", + "incremental-backups", + "index-expressions", + "index-file-structure", + "index-the-bounds-of-first-regular-expression-match-in-each-row", + "index-version", + "index-version--inmem", + "index-versions-and-startup-times", + "indextype", + "inequalities", + "infiniband", + "infinity", + "influx", + "influx---influxdb-command-line-interface", + "influx-arguments", + "influx-cli", + "influx-cli-moved-to-separate-repository", + "influx-cli-not-supported", + "influx-cli-release-notes", + "influx-command-line-interface-cli", + "influx-commands", + "influx-header", + "influx-inspect-disk-shard-utility", + "influx-inspect-disk-utility", + "influx-query-language-influxql-2x-specification", + "influx-stacks---json-output-conventions", + "influx-transpile-removed", + "influx-write-command", + "influx-write-skip-header-parsing", + "influx3-data-cli", + "influx_inspect", + "influx_inspect-buildtsi", + "influx_inspect-commands", + "influx_inspect-dumptsi", + "influx_inspect-utility", + "influxctl", + "influxctl-admin-cli", + "influxctl-cli", + "influxd", + "influxd---influxdb-daemon", + "influxd---influxdb-service", + "influxd-command", + "influxd-configuration", + "influxd-ctl--bind-tls", + "influxd-ctl-cli", + "influxd-ctl-cli-improvements", + "influxd-ctl-global-flags", + "influxd-ctl-updates", + "influxd-downgrade", + "influxd-flag", + "influxd-flag-1", + "influxd-flag-10", + "influxd-flag-11", + "influxd-flag-12", + "influxd-flag-13", + "influxd-flag-14", + "influxd-flag-15", + "influxd-flag-16", + "influxd-flag-17", + "influxd-flag-18", + "influxd-flag-19", + "influxd-flag-2", + "influxd-flag-20", + "influxd-flag-21", + "influxd-flag-22", + "influxd-flag-23", + "influxd-flag-24", + "influxd-flag-25", + "influxd-flag-26", + "influxd-flag-27", + "influxd-flag-28", + "influxd-flag-29", + "influxd-flag-3", + "influxd-flag-30", + "influxd-flag-31", + "influxd-flag-32", + "influxd-flag-33", + "influxd-flag-34", + "influxd-flag-35", + "influxd-flag-36", + "influxd-flag-37", + "influxd-flag-38", + "influxd-flag-39", + "influxd-flag-4", + "influxd-flag-40", + "influxd-flag-41", + "influxd-flag-42", + "influxd-flag-43", + "influxd-flag-44", + "influxd-flag-45", + "influxd-flag-46", + "influxd-flag-47", + "influxd-flag-48", + "influxd-flag-49", + "influxd-flag-5", + "influxd-flag-50", + "influxd-flag-51", + "influxd-flag-52", + "influxd-flag-53", + "influxd-flag-54", + "influxd-flag-55", + "influxd-flag-56", + "influxd-flag-57", + "influxd-flag-58", + "influxd-flag-59", + "influxd-flag-6", + "influxd-flag-60", + "influxd-flag-61", + "influxd-flag-62", + "influxd-flag-63", + "influxd-flag-64", + "influxd-flag-65", + "influxd-flag-66", + "influxd-flag-67", + "influxd-flag-68", + "influxd-flag-69", + "influxd-flag-7", + "influxd-flag-70", + "influxd-flag-71", + "influxd-flag-72", + "influxd-flag-8", + "influxd-flag-9", + "influxd-inspect", + "influxd-updates", + "influxd-upgrade", + "influxdata-1x", + "influxdata-1x-enterprise-versions", + "influxdata-1x-tick-stack", + "influxdata-blog", + "influxdata-contributor-license-agreement-cla", + "influxdata-how-to-guides", + "influxdata-package", + "influxdata-sandbox", + "influxdata-videos", + "influxdb", + "influxdb-1x-and-2x-clis-are-unique", + "influxdb-1x-http-endpoints", + "influxdb-1x2x-compatibility", + "influxdb-20", + "influxdb-20-beta-16-or-earlier", + "influxdb-2x-api-compatibility-endpoints", + "influxdb-2x-initialization-credentials", + "influxdb-2x1x-compatibility", + "influxdb-3", + "influxdb-3-and-flux", + "influxdb-3-api-client-libraries", + "influxdb-3-cloud-regions", + "influxdb-3-compatibility", + "influxdb-3-core-and-enterprise-relationship", + "influxdb-3-core-authentication-and-authorization", + "influxdb-3-core-configuration-options", + "influxdb-3-core-internals", + "influxdb-3-core-or-enterprise-v310-or-later-required", + "influxdb-3-enterprise-authentication-and-authorization", + "influxdb-3-enterprise-configuration-options", + "influxdb-3-enterprise-internals", + "influxdb-3-storage-engine-architecture", + "influxdb-_internal-1x-measurements-and-fields", + "influxdb-_internal-measurements-and-fields", + "influxdb-and-kapacitor-users-within-chronograf", + "influxdb-and-the-influx-cli-are-separate-packages", + "influxdb-anti-entropy-api", + "influxdb-api", + "influxdb-api-client-libraries", + "influxdb-api-reference", + "influxdb-aws-module-terraform", + "influxdb-catalog", + "influxdb-client-libraries", + "influxdb-cloud", + "influxdb-cloud-api-documentation", + "influxdb-cloud-data-durability", + "influxdb-cloud-dedicated-data-durability", + "influxdb-cloud-dedicated-security", + "influxdb-cloud-free-plan-resource-limits", + "influxdb-cloud-internals", + "influxdb-cloud-plans", + "influxdb-cloud-rate-limits", + "influxdb-cloud-regions", + "influxdb-cloud-security", + "influxdb-cloud-serverless-data-durability", + "influxdb-cloud-serverless-does-not-support-data-deletion", + "influxdb-cloud-serverless-internals", + "influxdb-cloud-serverless-regions", + "influxdb-cloud-service-health", + "influxdb-cloud-service-health-1", + "influxdb-cloud-status", + "influxdb-cloud-system-buckets", + "influxdb-cloud-tsm-service-notices", + "influxdb-cloud-ttbrs", + "influxdb-cloud-updates", + "influxdb-cloud-write-limits", + "influxdb-cloud-write-rate-limits", + "influxdb-clustered-license", + "influxdb-clustered-release-notes", + "influxdb-community-templates", + "influxdb-configuration-file", + "influxdb-configuration-files", + "influxdb-configuration-options", + "influxdb-connection-configuration", + "influxdb-connection-flags", + "influxdb-connection-options", + "influxdb-data-elements", + "influxdb-data-schema", + "influxdb-data-source", + "influxdb-data-structure", + "influxdb-design-insights-and-tradeoffs", + "influxdb-design-principles", + "influxdb-enterprise", + "influxdb-enterprise-111-release-notes", + "influxdb-enterprise-and-fips-compliance", + "influxdb-enterprise-cluster-features", + "influxdb-enterprise-cluster-guidelines", + "influxdb-enterprise-configuration-files", + "influxdb-enterprise-does-not-recognize-a-new-ldap-server", + "influxdb-enterprise-downloads", + "influxdb-enterprise-file-structure", + "influxdb-enterprise-frequently-asked-questions", + "influxdb-enterprise-user-management-using-the-ui", + "influxdb-environment-variables-influxdb_", + "influxdb-error-messages", + "influxdb-file-structure", + "influxdb-file-system-layout", + "influxdb-flight-responses", + "influxdb-frequently-asked-questions", + "influxdb-glossary", + "influxdb-gs-date-select", + "influxdb-http-api", + "influxdb-http-write-apis", + "influxdb-inch-tool", + "influxdb-internals", + "influxdb-is-not-crud", + "influxdb-key-concepts", + "influxdb-line-protocol", + "influxdb-line-protocol-in-practice", + "influxdb-line-protocol-reference", + "influxdb-line-protocol-syntax", + "influxdb-line-protocol-tutorial", + "influxdb-management-api-reference-documentation", + "influxdb-metrics-http-endpoint", + "influxdb-object-and-query-statistics", + "influxdb-only-deletes-cold-shards", + "influxdb-open-source-oss", + "influxdb-open-source-tools", + "influxdb-oss", + "influxdb-oss-guidelines", + "influxdb-oss-installation-requirements", + "influxdb-oss-metrics", + "influxdb-oss-networking-ports", + "influxdb-oss-permissions", + "influxdb-oss-setup", + "influxdb-oss-urls", + "influxdb-oss-user-management", + "influxdb-oss-v2-and-influx-cli-versions", + "influxdb-oss-v2-for-creating-templates", + "influxdb-oss-v2-release-notes", + "influxdb-package", + "influxdb-ports", + "influxdb-release-artifacts-affected", + "influxdb-runtime", + "influxdb-schema-design", + "influxdb-schema-design-and-data-layout", + "influxdb-schema-design-recommendations", + "influxdb-service-health", + "influxdb-service-health-1", + "influxdb-service-statistics", + "influxdb-shards-and-shard-groups", + "influxdb-stacks", + "influxdb-status-and-error-codes", + "influxdb-storage-engine", + "influxdb-storage-statistics", + "influxdb-syntaxes", + "influxdb-system-buckets", + "influxdb-task-statistics", + "influxdb-tasks", + "influxdb-tasks-1", + "influxdb-templates", + "influxdb-templates-in-cloud", + "influxdb-ui", + "influxdb-url-list", + "influxdb-user-interface", + "influxdb-user-interface-ui", + "influxdb-user-must-have-admin-privileges", + "influxdb-v1-api-compatibility", + "influxdb-v1-client-libraries", + "influxdb-v1-compatibility", + "influxdb-v1-compatibility-api-documentation", + "influxdb-v1-compatibility-api-reference-documentation", + "influxdb-v1-release-notes", + "influxdb-v1-to-influxdb-3-data-model", + "influxdb-v18", + "influxdb-v1x-bucket-naming-convention", + "influxdb-v2-api-client-libraries", + "influxdb-v2-api-compatibility", + "influxdb-v2-api-documentation", + "influxdb-v2-api-root-endpoint", + "influxdb-v2-compatibility", + "influxdb-v2-compatibility-api-reference-documentation", + "influxdb-v2-packaging", + "influxdb-v3-storage-architecture", + "influxdb3", + "influxdb3-ga", + "influxdb3-not-found", + "influxdb_iox_create_catalog_backup_data_snapshot_files", + "influxdb_iox_delete_using_catalog_backup_data_snapshot_files", + "influxdb_iox_gc_objectstore_cutoff", + "influxdb_iox_keep_daily_catalog_backup_file_lists", + "influxdb_iox_keep_hourly_catalog_backup_file_lists", + "influxdb_listener", + "influxdb_v2", + "influxdb_v2_listener", + "influxdbclient-instance-methods", + "influxdbclient-interface", + "influxdbclient3-instance-methods", + "influxdbclient3close", + "influxdbclient3query", + "influxdbclient3write", + "influxdbclient3write_file", + "influxdbclientquery", + "influxdbclientwritepoint", + "influxdbconf", + "influxdbexcluded-subscriptions", + "influxdbout", + "influxdbsubscriptions", + "influxdbu", + "influxdbv1", + "influxdbv2", + "influxql", + "influxql---example-query-request", + "influxql-1", + "influxql-2", + "influxql-3", + "influxql-4", + "influxql-5", + "influxql-6", + "influxql-7", + "influxql-8", + "influxql-and-flux-parity", + "influxql-and-flux-parity-1", + "influxql-continuous-queries", + "influxql-data-retention-policy-mapping-differences", + "influxql-dbrp-naming-convention", + "influxql-example-to-query-schemas", + "influxql-example-to-query-schemas-1", + "influxql-feature-support", + "influxql-functions", + "influxql-functions-by-type", + "influxql-in-tickscript", + "influxql-internals-reference", + "influxql-keywords", + "influxql-mathematical-operators", + "influxql-max-select-buckets", + "influxql-max-select-point", + "influxql-max-select-series", + "influxql-meta-query", + "influxql-meta-query-variable-use-cases", + "influxql-package", + "influxql-query-basics", + "influxql-query-management", + "influxql-query-results", + "influxql-reference", + "influxql-reference-documentation", + "influxql-retention-policies", + "influxql-shell-helper-commands", + "influxql-subscription-statements", + "influxql-support", + "influxql-syntax", + "influxql-tutorial", + "influxql-window-diagram", + "info", + "info-1", + "inforeset", + "infos_triggered", + "infrastructure-monitoring", + "ingest-blocked-time-24h", + "ingest-tier", + "ingest-tier-cpumem", + "ingester", + "ingester-disk-data-directory-usage", + "ingester-scaling-strategies", + "ingester-storage-volume", + "ingestor-catalog-operations", + "ingress-configuration", + "ingress-improvements", + "ingress-metric-by-login-enabled", + "ingress-metric-by-measurement-enabled", + "ingress-templating", + "inherent-rounding-errors-in-floating-point-arithmetic", + "inhibit", + "initcap", + "initial-data", + "initial-opening-of-data-files", + "initialize-a-client", + "initialize-a-stack", + "initialize-a-stack-when-applying-a-template", + "initialize-a-stack-with-a-name-and-description", + "initialize-a-stack-with-a-name-and-urls-to-associate-with-the-stack", + "initialize-using-a-database-connection-string", + "initialize-with-credential-parameters", + "initialzero", + "inject-annotation-headers", + "inline-alert-template", + "inline-row-template", + "inline-styles", + "inline-styles-1", + "inline-styles-2", + "inline-styles-3", + "inline-styles-4", + "inline-styles-5", + "inmem-index-option-removed", + "inner-join", + "inner-join-example", + "inner-join-result", + "inner-join-results", + "inner-joins", + "inner-query-result", + "inner-query-results", + "input", + "input-1", + "input-activemq", + "input-aerospike", + "input-aliyuncms", + "input-amd_rocm_smi", + "input-amqp_consumer", + "input-and-output-data-for-to-functions", + "input-apache", + "input-apcupsd", + "input-aurora", + "input-awsalarms", + "input-azure_monitor", + "input-azure_storage_queue", + "input-bcache", + "input-beanstalkd", + "input-beat", + "input-bigbluebutton", + "input-bind", + "input-bond", + "input-burrow", + "input-ceph", + "input-cgroup", + "input-chrony", + "input-cisco_telemetry_gnmi", + "input-cisco_telemetry_mdt", + "input-clickhouse", + "input-cloud_pubsub", + "input-cloud_pubsub_push", + "input-cloudwatch", + "input-cloudwatch_metric_streams", + "input-config-fieldpass-and-fielddrop", + "input-config-namepass-and-namedrop", + "input-config-prefix-suffix-and-override", + "input-config-taginclude-and-tagexclude", + "input-config-tagpass-and-tagdrop", + "input-config-tags", + "input-configuration", + "input-configuration-examples", + "input-conntrack", + "input-consul", + "input-consul_agent", + "input-couchbase", + "input-couchdb", + "input-cpu", + "input-csgo", + "input-ctrlx_datalayer", + "input-data", + "input-data-formats", + "input-db2", + "input-dcos", + "input-directory_monitor", + "input-disk", + "input-diskio", + "input-disque", + "input-dmcache", + "input-dns_query", + "input-dnsmasq", + "input-docker", + "input-docker_log", + "input-dovecot", + "input-dpdk", + "input-ds389", + "input-ecs", + "input-elasticsearch", + "input-elasticsearch_query", + "input-ethtool", + "input-eventhub_consumer", + "input-exec", + "input-execd", + "input-fail2ban", + "input-fibaro", + "input-file", + "input-filecount", + "input-filestat", + "input-fireboard", + "input-firehose", + "input-fluentd", + "input-fritzbox", + "input-github", + "input-gnmi", + "input-google_cloud_storage", + "input-graylog", + "input-haproxy", + "input-hddtemp", + "input-http", + "input-http_listener", + "input-http_listener_v2", + "input-http_response", + "input-huebridge", + "input-hugepages", + "input-icinga2", + "input-infiniband", + "input-influxdb", + "input-influxdb_listener", + "input-influxdb_v2_listener", + "input-intel_baseband", + "input-intel_dlb", + "input-intel_pmt", + "input-intel_pmu", + "input-intel_powerstat", + "input-intel_rdt", + "input-internal", + "input-internet_speed", + "input-interrupts", + "input-ipmi_sensor", + "input-ipset", + "input-iptables", + "input-ipvs", + "input-jenkins", + "input-jolokia2_agent", + "input-jolokia2_proxy", + "input-jti_openconfig_telemetry", + "input-kafka_consumer", + "input-kapacitor", + "input-kernel", + "input-kernel_vmstat", + "input-kibana", + "input-kinesis_consumer", + "input-knot", + "input-knx_listener", + "input-kube_inventory", + "input-kubernetes", + "input-lanz", + "input-ldap", + "input-ldap_org", + "input-leofs", + "input-libvirt", + "input-linux_cpu", + "input-linux_sysctl_fs", + "input-logparser", + "input-logstash", + "input-lustre2", + "input-lvm", + "input-mailchimp", + "input-marklogic", + "input-mcrouter", + "input-mdstat", + "input-mem", + "input-memcached", + "input-mesos", + "input-methods", + "input-minecraft", + "input-mock", + "input-modbus", + "input-mongodb", + "input-monit", + "input-mqtt_consumer", + "input-multifile", + "input-mysql", + "input-nats", + "input-nats_consumer", + "input-neptune_apex", + "input-net", + "input-net_response", + "input-netflow", + "input-netstat", + "input-nfsclient", + "input-nginx", + "input-nginx_plus", + "input-nginx_plus_api", + "input-nginx_sts", + "input-nginx_upstream_check", + "input-nginx_vts", + "input-nomad", + "input-nsd", + "input-nsdp", + "input-nsq", + "input-nsq_consumer", + "input-nstat", + "input-ntpq", + "input-nvidia_smi", + "input-octoprint", + "input-opcua", + "input-opcua_listener", + "input-openldap", + "input-openntpd", + "input-opensearch_query", + "input-opensmtpd", + "input-openstack", + "input-opentelemetry", + "input-openweathermap", + "input-oracle", + "input-p4runtime", + "input-parser-plugins", + "input-passenger", + "input-pf", + "input-pgbouncer", + "input-phpfpm", + "input-ping", + "input-plex", + "input-plugin", + "input-plugin-updates", + "input-plugin-updates-1", + "input-plugin-updates-10", + "input-plugin-updates-11", + "input-plugin-updates-12", + "input-plugin-updates-13", + "input-plugin-updates-14", + "input-plugin-updates-15", + "input-plugin-updates-16", + "input-plugin-updates-17", + "input-plugin-updates-18", + "input-plugin-updates-19", + "input-plugin-updates-2", + "input-plugin-updates-20", + "input-plugin-updates-21", + "input-plugin-updates-22", + "input-plugin-updates-23", + "input-plugin-updates-24", + "input-plugin-updates-25", + "input-plugin-updates-26", + "input-plugin-updates-27", + "input-plugin-updates-28", + "input-plugin-updates-29", + "input-plugin-updates-3", + "input-plugin-updates-30", + "input-plugin-updates-31", + "input-plugin-updates-32", + "input-plugin-updates-33", + "input-plugin-updates-34", + "input-plugin-updates-35", + "input-plugin-updates-4", + "input-plugin-updates-5", + "input-plugin-updates-6", + "input-plugin-updates-7", + "input-plugin-updates-8", + "input-plugin-updates-9", + "input-plugins", + "input-plugins-1", + "input-postfix", + "input-postgresql", + "input-postgresql_extensible", + "input-powerdns", + "input-powerdns_recursor", + "input-processes", + "input-procstat", + "input-prometheus", + "input-proxmox", + "input-psi", + "input-puppetagent", + "input-rabbitmq", + "input-radius", + "input-raindrops", + "input-ras", + "input-ravendb", + "input-records", + "input-redfish", + "input-redis", + "input-redis_sentinel", + "input-rethinkdb", + "input-riak", + "input-riemann_listener", + "input-s7comm", + "input-salesforce", + "input-sensors", + "input-sflow", + "input-slab", + "input-slurm", + "input-smart", + "input-smartctl", + "input-snmp", + "input-snmp_trap", + "input-socket_listener", + "input-socketstat", + "input-solr", + "input-sql", + "input-sqlserver", + "input-stackdriver", + "input-statsd", + "input-streams", + "input-supervisor", + "input-suricata", + "input-swap", + "input-synproxy", + "input-syslog", + "input-sysstat", + "input-system", + "input-systemd_timings", + "input-systemd_units", + "input-tacacs", + "input-tail", + "input-teamspeak", + "input-telegraf-apt", + "input-temp", + "input-tengine", + "input-tomcat", + "input-trig", + "input-twemproxy", + "input-unbound", + "input-upsd", + "input-uwsgi", + "input-varnish", + "input-vault", + "input-vsphere", + "input-webhooks", + "input-win_eventlog", + "input-win_perf_counters", + "input-win_services", + "input-win_wmi", + "input-wireguard", + "input-wireless", + "input-x509_cert", + "input-x509_crl", + "input-xtremio", + "input-youtube", + "input-zfs", + "input-zipkin", + "input-zookeeper", + "inputs", + "inputs-1", + "inputs-10", + "inputs-11", + "inputs-12", + "inputs-13", + "inputs-2", + "inputs-3", + "inputs-4", + "inputs-5", + "inputs-6", + "inputs-7", + "inputs-8", + "inputs-9", + "inputstring", + "insecure-skip-verify", + "insecure-skip-verify--false", + "insecureskipverify", + "insert-a-key-value-pair-into-a-dictionary", + "insert-a-new-key-value-pair-into-the-a-dictionary", + "insert-data-into-the-a-specific-database-and-retention-policy", + "insert-data-into-the-a-the-default-retention-policy-of-a-database", + "insert-data-into-the-currently-used-database", + "inspect-cluster-pods", + "inspect-influxdb-internal-metrics", + "inspect-the-response-of-an-http-request", + "inspect-tsi-indexes", + "install-a-monitor", + "install-a-self-signed-certificate-on-debian", + "install-an-influxdb-enterprise-cluster", + "install-and-configure-your-influxdb-cluster", + "install-and-customize-a-template-in-the-cloud-ui", + "install-and-customize-influxdb-community-templates-in-the-cloud-ui", + "install-and-run-the-ui", + "install-and-set-up-influxdb-in-a-container", + "install-and-start-etcd", + "install-and-startup", + "install-and-use-a-client-library", + "install-and-use-the-influx-cli", + "install-and-use-the-python-client-library", + "install-chronograf", + "install-chronograf-last", + "install-completion-scripts", + "install-dependencies", + "install-from-a-deb-file", + "install-from-the-influxdata-repository", + "install-go", + "install-grafana-or-login-to-grafana-cloud", + "install-helm", + "install-influxdb", + "install-influxdb-as-a-service-with-systemd", + "install-influxdb-client-library", + "install-influxdb-hahahugoshortcode1644s2hbhb", + "install-influxdb-in-a-kubernetes-cluster", + "install-influxdb-inch", + "install-influxdb-oss", + "install-kapacitor", + "install-kubectl", + "install-linux", + "install-linux-binaries", + "install-nodejs", + "install-pandas", + "install-postman", + "install-prerequisites", + "install-prerequisites-for-superset-and-flight-sql", + "install-python", + "install-python-dependencies", + "install-tableau-desktop", + "install-telegraf", + "install-telegraf-on-each-node", + "install-the-data-node-package", + "install-the-flux-plugin", + "install-the-influx-cli", + "install-the-influxdata-platform", + "install-the-influxdb-enterprise-monitoring-template", + "install-the-influxdb-javascript-client-library", + "install-the-influxdb-oss-monitoring-template", + "install-the-influxdb-v2-javascript-client-library", + "install-the-influxdb3-python-library", + "install-the-kubecfg-kubit-operator", + "install-the-meta-node-package", + "install-typescript", + "install-using-homebrew", + "install-with-vim-coc", + "install-with-vim-lsp", + "install-yarn", + "install-your-influxdb-license", + "installation", + "installation-documentation-moved-to-the-documentation-site", + "installation-requirements", + "installed-a-new-influxdb-instance", + "installed-as-a-package", + "installed-as-a-standalone-binary", + "installing-influxdb-oss", + "instance", + "instance-id", + "instance-methods", + "instance-owner", + "instr", + "instrumental", + "int", + "integer", + "integer-field-value-examples", + "integer-literals", + "integer-syntax", + "integers", + "integral", + "integrate-influxdb-20-applications-with-influxdb-enterprise-18", + "integrate-with-external-plugins", + "intel_baseband", + "intel_dlb", + "intel_pmt", + "intel_pmu", + "intel_powerstat", + "intel_rdt", + "interacting-with-the-sandbox-tick-stack", + "interactive-clients", + "interactive-shell", + "intermediate-verification", + "internal", + "internal-access-controls", + "internal-configuration-groups", + "internal-error-received-rst_stream", + "internal-error-stream-terminated-by-rst_stream-with-no_error", + "internal-monitoring", + "internal-package", + "internal-shared-secret", + "internet_speed", + "interpolate", + "interpolate-missing-data-by-day", + "interpolate-package", + "interpolate-strings", + "interrupts", + "interval", + "into-clause", + "into-query-with-group-by-", + "into-query-without-group-by-", + "introducing-iot-starter", + "introduction", + "introduction-to-authorization-in-influxdb-enterprise", + "invalid-api-token", + "invalid-argument-error-bucket-bucket_id-not-found", + "invalid-argument-invalid-ticket", + "invalid-line-protocol---double-quote-the-timestamp", + "invalid-operation-time-and-influxqlvarref-are-not-compatible", + "invalid-thumbprint", + "invert-bits-in-an-integer", + "invert-bits-in-an-unsigned-integer", + "invert-bits-in-integers-in-a-stream-of-tables", + "invert-bits-in-unsigned-integers-in-a-stream-of-tables", + "invite-a-user-to-your-account", + "invite-a-user-to-your-organization", + "invoke-a-script", + "invoke-a-script-with-parameters", + "iot", + "iot-sensor-common-queries", + "iotdb", + "iox", + "iox-package", + "ipmi_sensor", + "ipset", + "iptables", + "ipvs", + "is-distinct-from", + "is-flux-going-to-end-of-life", + "is-not-distinct-from", + "is-the-alert-state-and-alert-data-lost-happen-when-updating-a-script", + "is-there-a-limit-on-the-number-of-scripts-kapacitor-can-handle", + "iscounter", + "isnan", + "ispresent", + "israte", + "issue-1-mathematical-operators-with-wildcards-and-regular-expressions", + "issue-2-mathematical-operators-with-functions", + "issues-solved-by-tsi-and-remaining-to-be-solved", + "istio-support", + "iszero", + "iterate-over-an-array", + "iterator-type", + "iteratorcostreq", + "j", + "jaeger", + "january-2021", + "january-2022", + "java", + "java-flight-sql-package", + "javascript", + "javascript-for-browsers", + "javascriptnodejs", + "jenkins", + "jobs", + "jobsactive", + "join", + "join-a-list-of-strings-into-a-single-string", + "join-a-meta-and-data-node-into-a-cluster", + "join-a-meta-and-data-node-to-an-existing-cluster", + "join-a-meta-node-to-an-existing-cluster", + "join-clause", + "join-cpu-and-memory-usage", + "join-data-from-separate-data-sources", + "join-diagram", + "join-meta-nodes-to-the-cluster", + "join-multiple-data-sources-for-mathematic-calculations", + "join-on-time", + "join-output-function-as", + "join-package", + "join-predicate-function-on", + "join-sample-tables", + "join-sql-data-with-data-in-influxdb", + "join-the-data-nodes-to-the-cluster", + "join-the-two-data-streams", + "join-two-streams-of-data", + "join-two-streams-of-tables", + "join-two-streams-of-tables-with-different-fields-and-measurements", + "join-two-tables-by-timestamp", + "join-types", + "join-vs-union", + "joined-output-table", + "joining-with-batch-data", + "joins", + "jolokia2_agent", + "jolokia2_proxy", + "json", + "json-array-of-objects", + "json-array-of-scalar-values", + "json-data", + "json-formatted-results", + "json-object", + "json-package", + "json-v2", + "json_query", + "json_string_fields", + "json_time_format", + "json_time_key", + "json_time_key-json_time_format-json_timezone", + "json_timezone", + "jsternberg-package", + "jti_openconfig_telemetry", + "july", + "july-2021", + "june-2022", + "jwks-signature-verification-optional", + "jwt", + "k", + "k8sautoscale", + "kafka", + "kafka-1", + "kafka-message-partitioning", + "kafka-package", + "kafka_consumer", + "kafka_cpu_handleryaml", + "kafkasasl-oauth-parameters", + "kapacitor", + "kapacitor-alerts-and-the-tickscript", + "kapacitor-and-influxdb-authentication", + "kapacitor-and-influxdb-https", + "kapacitor-as-a-continuous-query-engine", + "kapacitor-authentication-and-authorization", + "kapacitor-authentication-configuration-options", + "kapacitor-cli", + "kapacitor-cluster-management", + "kapacitor-command-line-client-with-https", + "kapacitor-command-line-tools", + "kapacitor-configuration-file", + "kapacitor-configuration-file-location", + "kapacitor-connection-flags", + "kapacitor-connection-options", + "kapacitor-enterprise", + "kapacitor-environment-variables", + "kapacitor-event-handlers", + "kapacitor-event-handlers-supported-in-chronograf", + "kapacitor-flags", + "kapacitor-flux-task-configuration-example", + "kapacitor-frequently-asked-questions", + "kapacitor-ids-in-containerized-or-ephemeral-filesystems", + "kapacitor-integration", + "kapacitor-integration-improvements", + "kapacitor-measurements--fields", + "kapacitor-measurements-and-fields", + "kapacitor-over-tls", + "kapacitor-release-notes", + "kapacitor-security", + "kapacitor-tasks-and-chronograf", + "kapacitor-to-influxdb-tls-configuration-over-http-api", + "kapacitor-user-types-and-permissions", + "kapacitor_edges", + "kapacitor_ingress", + "kapacitor_load", + "kapacitor_memstats", + "kapacitor_nodes", + "kapacitor_topics", + "kapacitorapi", + "kapacitorconfigapi", + "kapacitord", + "kapacitorloopback", + "kaufmans_adaptive_moving_average", + "kaufmans_efficiency_ratio", + "keep", + "keep-a-list-of-columns", + "keep-client-secrets-secure", + "keep-columns-matching-a-predicate", + "keep-empty-tables-when-filtering", + "keep-keys-simple", + "keep-measurement-names-tags-and-fields-simple", + "keep-measurements-and-keys-simple", + "keep-table-names-tags-and-fields-simple", + "keep-tags-simple", + "keep-test-and-production-data-separate", + "keep-the-first-value-when-calculating-the-difference-between-values", + "keepfirst", + "kernel", + "kernel_vmstat", + "key", + "key-components", + "key-concepts", + "key-concepts-before-you-get-started", + "key-differences-between-influxdb-cloud-serverless-and-cloud-dedicated", + "key-features", + "key-mappings", + "keyboard-shortcuts", + "keycloak", + "keycloak-admin-console", + "keycloak-rest-api", + "keycolumns", + "keyword", + "keywords", + "kibana", + "kill-a-running-query", + "kill-query", + "kill-repair", + "kind", + "kindtag", + "kinesis", + "kinesis_consumer", + "knot", + "known-bugs", + "known-issues", + "knx_listener", + "kube-influxdb-kubernetes-monitoring-project", + "kube_inventory", + "kubecfg-kubit-operator", + "kubectl-kubit-helm", + "kubectl-requires-cluster-wide-permissions", + "kubectl-standard-deployment-with-internet-access", + "kubernetes", + "kubernetes-dashboard-template", + "kubernetes-default-paths", + "kubernetes-file-system-overview", + "kubernetes-node", + "kubernetes-overview", + "kubernetes-pod", + "kubernetes-specific-information", + "kubits-role-in-air-gapped-environments", + "l", + "labelsannotations", + "lag", + "lambda-expressions", + "lambda-expressions-as-literals", + "landing-hive", + "lanz", + "large-udp-packets", + "last", + "last-cache-eviction-interval", + "last-value-caches-are-flushed-when-the-server-stops", + "last-values-cache", + "last_cache", + "last_gc_ns", + "last_value", + "lastsuccesstime", + "latfield", + "latitude-and-longitude-values", + "launch-influx", + "launch-the-influxdb-command-line-interface", + "launch-the-process-with-a-configuration-file", + "launched-as-a-service", + "lcm", + "ldap", + "ldap-allowed", + "ldap_org", + "lead", + "leader-lease-timeout", + "leading-edge-data-with-no-backups", + "learn-more", + "learn-more-about-how-filter-works", + "learn-more-about-how-map-works", + "learn-more-about-tokens-and-permissions", + "learn-the-causes-of-high-series-cardinality", + "learn-to-use-apis-for-your-workloads", + "lease-duration", + "leave-out-the-option-tasks-assignment", + "left", + "left-input", + "left-outer-join", + "left-outer-join-example", + "left-outer-join-result", + "left-outer-join-results", + "legacy-backup-examples", + "legacy-format-directory-structure", + "legacy-slack-apps", + "legend", + "length", + "length-and-length_min-options", + "leofs", + "less-than", + "less-than-or-equal", + "letters-and-digits", + "level", + "level--info", + "leveldb-and-log-structured-merge-trees", + "levelfield", + "leveltag", + "levenshtein", + "lexical-elements", + "librato", + "libvirt", + "license-detection", + "license-email", + "license-enforcement", + "license-expiry-logs", + "license-feature-comparison", + "license-file", + "license-grace-periods", + "license-key", + "license-key-or-file", + "license-now-required", + "license-path", + "licensing", + "lifecycle", + "like", + "like-operator-in-the-where-clause", + "limit", + "limit-and-slimit", + "limit-and-slimit-clauses", + "limit-clause", + "limit-examples", + "limit-results-to-a-maximum-of-five-rows", + "limit-results-to-the-first-three-rows-in-each-input-table-after-the-first-two", + "limit-results-to-the-first-three-rows-in-each-table", + "limit-syntax", + "limit-the-number-of-failed-runs-to-retry-for-each-task", + "limit-the-number-of-invokable-scripts-returned-to-20", + "limit-the-number-of-kapacitor-flux-tasks-returned", + "limit-the-number-of-partition-files", + "limit-the-number-of-points-and-series-returned", + "limit-the-number-of-points-and-series-returned-and-include-a-group-by-time-clause", + "limit-the-number-of-points-returned", + "limit-the-number-of-points-returned-and-include-a-group-by-clause", + "limit-the-number-of-returned-task-runs-to-20", + "limit-the-number-of-rows-returned", + "limit-the-number-of-rows-returned-from-each-influxql-group", + "limit-the-number-of-series-returned", + "limit-the-number-of-series-returned-and-include-a-group-by-time-clause", + "limit-the-number-of-tasks-returned-to-20", + "limit-the-number-of-tasks-to-retry-failed-runs-for", + "limit-the-number-points-returned-and-include-a-group-by-clause", + "limit-update", + "limitations", + "limited-influxql-feature-support", + "limited-influxql-support", + "limited-influxql-support-in-influxdb-cloud-and-oss-2x", + "limits-and-adjustable-quotas", + "line-graph", + "line-graph--single-stat", + "line-graph--single-stat-controls", + "line-graph--single-stat-example", + "line-graph-controls", + "line-graph-example", + "line-protocol", + "line-protocol-anatomy", + "line-protocol-element-parsing", + "line-protocol-elements", + "line-protocol-format", + "line-protocol-lp", + "line-protocol-reference", + "line-protocol-syntax", + "linearbins", + "linestring", + "link-to-dashboards-with-variables-defined-in-the-url", + "links", + "linux", + "linux---systemd-systems", + "linux---sysv-or-upstart-systems", + "linux-and-macos", + "linux-browser-download", + "linux-command-line-download", + "linux-default-directories-package", + "linux-default-directories-standalone-binary", + "linux-default-paths-package", + "linux-default-paths-standalone-binary", + "linux-file-system-overview-package", + "linux-file-system-overview-standalone-binary", + "linux-systemd-installations", + "linux_cpu", + "linux_sysctl_fs", + "lisp", + "list", + "list-a-bucket-by-id", + "list-a-bucket-by-name", + "list-a-limited-number-of-flux-task-runs", + "list-a-limited-number-of-flux-tasks", + "list-a-limited-number-of-flux-tasks-api", + "list-a-limited-number-of-runs-for-a-flux-task", + "list-a-replication-stream-by-name", + "list-a-specific-flux-task", + "list-a-specific-flux-task-by-name", + "list-a-specific-flux-task-by-name-api", + "list-a-specific-handler-in-a-topic", + "list-a-specific-kapacitor-flux-task", + "list-a-specific-organization-by-id", + "list-a-specific-organization-by-name", + "list-a-specific-recording", + "list-a-specific-remote-by-name", + "list-a-specific-run-of-a-task", + "list-a-specific-task", + "list-a-specific-user-by-id", + "list-a-specific-user-by-username", + "list-a-specific-v1-authorization-by-id", + "list-a-telegraf-configuration-with-the-specified-id", + "list-admin-tokens", + "list-all-api-tokens", + "list-all-buckets", + "list-all-columns-per-input-table", + "list-all-dashboards", + "list-all-databases", + "list-all-databases-including-deleted-databases", + "list-all-dbrp-mappings-in-your-organization", + "list-all-flux-tasks", + "list-all-flux-tasks-api", + "list-all-handlers-in-a-topic", + "list-all-invokable-scripts", + "list-all-kapacitor-flux-tasks", + "list-all-organizations", + "list-all-remotes", + "list-all-replication-streams", + "list-all-runs-for-a-flux-task", + "list-all-runs-of-a-task", + "list-all-schemas-of-a-bucket-and-print-column-information", + "list-all-secret-keys", + "list-all-stacks", + "list-all-tasks", + "list-all-tasks-created-by-a-specific-user", + "list-all-tasks-matching-a-glob-pattern", + "list-all-telegraf-configurations", + "list-all-tokens", + "list-all-users", + "list-all-v1-authorizations", + "list-api-tokens-associated-with-a-user", + "list-available-aggregator-plugins", + "list-available-influxdb-sample-datasets", + "list-available-input-plugins", + "list-available-output-plugins", + "list-available-parser-plugins", + "list-available-processor-plugins", + "list-available-secretstore-plugins", + "list-available-serializer-plugins", + "list-buckets", + "list-buckets-in-an-influxdb-organization", + "list-clusters", + "list-columns-in-a-measurement", + "list-columns-in-a-table", + "list-currently-running-queries-with-show-queries", + "list-database-tokens", + "list-databases", + "list-databases-from-an-influxdb-instance", + "list-databases-in-json-formatted-output", + "list-databases-in-parquet-formatted-output", + "list-dbrp-mappings", + "list-dbrp-mappings-for-specific-buckets", + "list-dbrp-mappings-with-a-specific-database", + "list-dbrp-mappings-with-a-specific-retention-policy", + "list-deleted-databases", + "list-deprecated-input-plugins", + "list-deprecated-output-plugins", + "list-deprecated-parser-plugins", + "list-deprecated-serializer-plugins", + "list-docker-containers", + "list-existing-users-in-the-influxdb-instance", + "list-field-keys", + "list-field-keys-in-a-measurement", + "list-fields-in-a-measurement", + "list-filters", + "list-flux-task-runs-after-a-specific-run-id", + "list-flux-task-runs-that-occurred-in-a-time-range", + "list-flux-task-runs-that-occurred-in-a-time-range-api", + "list-flux-tasks", + "list-flux-tasks-after-a-specific-task-id", + "list-invokable-scripts", + "list-kapacitor-flux-task-runs", + "list-kapacitor-flux-tasks", + "list-kapacitor-flux-tasks-owned-by-a-specific-user", + "list-kapacitor-flux-tasks-runs", + "list-keys-in-a-record", + "list-kubernetes-nodes", + "list-kubernetes-pods", + "list-logs-from-a-specific-task-execution", + "list-logs-from-all-task-executions", + "list-management-tokens", + "list-measurements", + "list-measurements-in-a-bucket", + "list-measurements-in-a-database", + "list-measurements-that-contain-specific-tag-key-value-pairs", + "list-measurements-that-match-a-regular-expression", + "list-members-of-an-organization", + "list-of-handlers", + "list-only-active-flux-tasks", + "list-only-specific-dashboards", + "list-recordings", + "list-replays", + "list-resource-tokens", + "list-roles", + "list-runs-for-a-flux-task", + "list-secrets-and-secret-stores-using-a-non-default-configuration-location", + "list-secrets-and-secret-stores-using-the-default-configuration-location", + "list-secrets-from-a-specific-secret-store", + "list-service-tests", + "list-system-tables", + "list-system-tables-in-json-formatted-output", + "list-tables", + "list-tables-in-a-database", + "list-tables-with-the-influxctl-cli", + "list-tag-keys", + "list-tag-keys-in-a-measurement", + "list-tag-keys-in-measurements-that-contain-a-specific-tag-key-value-pair", + "list-tag-values", + "list-tag-values-associated-with-a-specific-tag-key-value-pair", + "list-tag-values-for-a-specific-tag-key", + "list-tag-values-for-multiple-tags", + "list-tag-values-for-tags-that-match-a-regular-expression", + "list-tag-values-in-a-measurement", + "list-tasks", + "list-templates", + "list-testable-services", + "list-the-distinct-field-values", + "list-the-distinct-field-values-associated-with-a-field-key", + "list-the-distinct-field-values-associated-with-a-field-key-and-include-several-clauses", + "list-the-distinct-field-values-associated-with-each-field-key-in-a-measurement", + "list-tokens-in-different-output-formats", + "list-topic-events", + "list-topic-handlers", + "list-topics", + "list-unique-tag-values", + "list-users", + "list-v1-authorizations-associated-with-a-user-id", + "list-v1-authorizations-associated-with-a-username", + "listing-continuous-queries", + "lists", + "literal", + "literal-constructors", + "literal-values", + "literals", + "literals-versus-field-values", + "live-datasets", + "live-leaderboard-of-game-scores", + "live-replay-batch-queries-in-a-relative-time-range", + "live-replay-batch-queries-in-an-absolute-time-range", + "liveconnections", + "livestreams", + "ln", + "lnav-log-file-navigator", + "load", + "load-a-dashboard-as-a-resource", + "load-a-raw-stream-of-tables-in-a-test-case", + "load-annotated-csv-sample-data", + "load-balancer", + "load-balancing", + "load-bird-migration-sample-data", + "load-csv-or-line-protocol-in-ui", + "load-data-from-a-client-library-in-the-ui", + "load-data-from-a-telegraf-plugin-in-the-ui", + "load-data-redesign", + "load-data-source-in-ui", + "load-data-updates", + "load-directory-service", + "load-tasks-with-kapacitor", + "load-testing-tools", + "loading", + "loading-the-stack-with-docker-compose", + "loc", + "local-or-utc-timezone", + "localhost8086", + "localhost8181", + "locate-the-physical-plan", + "location", + "location-package", + "locf", + "log", + "log-and-trace-influxdb-enterprise-operations", + "log-and-trace-with-influxdb", + "log-data-not-being-dropped", + "log-data-retention-policies", + "log-destination", + "log-enabled", + "log-enabled--true", + "log-enabled--true-1", + "log-enabled-1", + "log-file-structure", + "log-filter", + "log-format", + "log-formats", + "log-identifier-context-key", + "log-in-and-log-out", + "log-in-to-superset", + "log-level", + "log-location-on-macos", + "log-messages-for-monitoring-and-debugging", + "log-messages-from-a-defined-handler", + "log-messages-from-a-tickscript", + "log-point-errors", + "log-point-errors--true", + "log-queries-after", + "log-queries-after--0s", + "log-timedout-queries--false", + "log10", + "log2", + "logarithmicbins", + "logfmt", + "logging", + "logging-1", + "logging-and-troubleshooting", + "logging-enabled", + "logging-enabled--true", + "logging-enhancements", + "logging-formats", + "logging-keys-used-in-tracing", + "logging-levels", + "logging-locations", + "logging-settings", + "logical-operators", + "logical-plan", + "logicalplan-nodes", + "logo-suppression", + "logparser", + "logql-package", + "logrotate", + "logs", + "logs-as-json", + "logs-as-logfmt", + "logs-in-dashboards", + "logs-when-running-influxdb-as-a-service", + "logstash", + "logzio", + "loki", + "lonfield", + "long", + "long-shard-group-duration", + "lookup", + "lookups", + "lower", + "lower-defaults-for-garbage-collection", + "lp-ingest-at-router-bytes", + "lp-ingest-at-router-lines", + "lpad", + "ltrim", + "lustre2", + "lvc-size-and-persistence", + "lvm", + "m", + "machine-production-sample-data", + "macos", + "macos-browser-download", + "macos-catalina-and-newer-authorize-the-influxd-binary", + "macos-command-line-download", + "macos-default-directories", + "macos-default-paths", + "macos-file-system-overview", + "macos-homebrew", + "macos-using-homebrew", + "mailchimp", + "maintain-state-with-the-in-memory-cache", + "maintain-the-original-timestamp", + "maintenance", + "maintenance-1", + "maintenance-10", + "maintenance-11", + "maintenance-12", + "maintenance-13", + "maintenance-2", + "maintenance-3", + "maintenance-4", + "maintenance-5", + "maintenance-6", + "maintenance-7", + "maintenance-8", + "maintenance-9", + "maintenance-updates", + "maintenance-updates-1", + "maintenance-updates-2", + "maintenance-updates-3", + "maintenance-updates-4", + "maintenance-xyz", + "major", + "make-a-get-request", + "make-a-get-request-and-decode-the-json-response", + "make-a-get-request-that-needs-authorization", + "make-a-get-request-with-query-parameters", + "make-a-post-request-with-a-json-body-and-decode-json-response", + "make-a-post-request-with-query-parameters", + "make-host-machine-files-readable-to-docker", + "make_date", + "mallocs", + "manage", + "manage-admin-and-non-admin-users", + "manage-admin-tokens", + "manage-admin-users", + "manage-alerts", + "manage-api-tokens", + "manage-authorization-with-influxql", + "manage-authorization-with-the-influxdb-enterprise-meta-api", + "manage-billing", + "manage-bucket-schemas", + "manage-buckets", + "manage-checks", + "manage-chronograf-alert-rules", + "manage-chronograf-organizations", + "manage-chronograf-security", + "manage-chronograf-users", + "manage-chronograf-users-and-roles", + "manage-clusters", + "manage-continuous-queries", + "manage-credentials", + "manage-data-partitioning", + "manage-database-tables", + "manage-database-tokens", + "manage-databases", + "manage-dbrps", + "manage-enterprise-permissions-with-chronograf", + "manage-enterprise-permissions-with-the-meta-api", + "manage-environment-variables-in-your-influxdb-cluster", + "manage-explicit-bucket-schemas", + "manage-files-in-mounted-volumes", + "manage-fine-grained-authorization", + "manage-flux-tasks", + "manage-grants", + "manage-influxdb-connections-using-src-files", + "manage-influxdb-connections-using-the-chronograf-ui", + "manage-influxdb-dashboards", + "manage-influxdb-enterprise-clusters", + "manage-influxdb-internal-systems", + "manage-influxdb-logs", + "manage-influxdb-scrapers", + "manage-influxdb-security", + "manage-influxdb-stacks", + "manage-influxdb-users-in-chronograf", + "manage-kapacitor-alerts", + "manage-kapacitor-connections-using-kap-files", + "manage-kapacitor-connections-using-the-chronograf-ui", + "manage-kapacitor-flux-task-runs", + "manage-kapacitor-flux-tasks", + "manage-kapacitor-subscriptions", + "manage-kapacitor-tasks", + "manage-kapacitor-tickscripts", + "manage-labels-in-the-influxdb-ui", + "manage-management-tokens", + "manage-node-labels", + "manage-non-admin-users", + "manage-notebooks", + "manage-notification-endpoints", + "manage-notification-rules", + "manage-organization-members", + "manage-organizations", + "manage-queries", + "manage-queries-in-chronograf", + "manage-read-and-write-privileges-with-influxql", + "manage-recordings", + "manage-replays", + "manage-resource-tokens", + "manage-restrictions", + "manage-retention-policies", + "manage-roles", + "manage-secrets", + "manage-secrets-through-the-influxdb-api", + "manage-security-and-authorization", + "manage-storage", + "manage-subscriptions-in-influxdb", + "manage-tables", + "manage-tasks", + "manage-telegraf-configurations", + "manage-templates", + "manage-the-distinct-value-cache", + "manage-the-influxdb-time-series-index-tsi", + "manage-the-last-value-cache", + "manage-tokens", + "manage-tokens-in-the-influxdb-ui", + "manage-user-authorization", + "manage-users", + "manage-users-and-permissions", + "manage-users-in-your-identity-provider", + "manage-users-in-your-influxdb-cluster", + "manage-your-influxdb-3-enterprise-license", + "manage-your-influxdb-cloud-serverless-account", + "manage-your-influxdb-clustered-license", + "manage-your-monitoring-and-alerting-pipeline", + "managecontinuousquery", + "management-token-strings-are-not-retrievable", + "management-tokens", + "management-tokens-and-the-management-api", + "management-tokens-in-influxctl-cli", + "managequery", + "manageshard", + "managesubscription", + "managing-catalog-components", + "managing-kapacitor-from-chronograf", + "managing-tasks-through-chronograf", + "manifest", + "manipulate-timestamps", + "manual-upgrade", + "manual-upgrade-required", + "manually-add-telegraf-plugins", + "manually-configure-telegraf", + "manually-download-and-install", + "manually-download-and-install-for-macos", + "manually-download-and-install-the-influxctl-binary", + "manually-download-and-install-the-influxd-binary", + "manually-download-the-package", + "manually-initialize-a-new-stack", + "manually-migrated-from-influxdb-1x-to-2x", + "manually-refresh-a-dashboard", + "manually-refresh-a-single-dashboard-cell", + "manually-refresh-dashboard", + "manually-upgrade", + "map", + "map-configuration-properties-to-environment-variables", + "map-database-and-retention-policies-to-buckets", + "map-databases-and-retention-policies-to-buckets", + "map-examples", + "map-new-values", + "map-organizations", + "map-v1-databases-and-retention-policies-to-buckets", + "map-values-based-on-existence", + "map-variable-csv-example", + "map-variable-example", + "map-variable-use-cases", + "mapfn", + "mapped-environment-variables", + "mapped-table", + "march-2022", + "mariadb-bool-types", + "mariadb-data-source-name", + "mariadb-to-flux-data-type-conversion", + "markdown", + "marklogic", + "match-conditions", + "match-expressions", + "match-parameter-names", + "matching-methods", + "math-across-measurements", + "math-functions", + "math-package", + "mathematical-operators", + "mathematical-operators-with-functions", + "mathematical-operators-with-wildcards-and-regular-expressions", + "matlab", + "max", + "max-age", + "max-body-size", + "max-body-size--25000000", + "max-cache-size", + "max-concurrent-compactions", + "max-concurrent-compactions--0", + "max-concurrent-deletes", + "max-concurrent-deletes--1", + "max-concurrent-queries", + "max-concurrent-queries--0", + "max-concurrent-write-limit", + "max-concurrent-write-limit--0", + "max-connection-limit", + "max-connection-limit--0", + "max-enqueued-write-limit", + "max-enqueued-write-limit--0", + "max-fetch", + "max-http-request-size", + "max-index-log-file-size", + "max-index-log-file-size--1m", + "max-log-file-size", + "max-persist-queue-depth", + "max-row-limit", + "max-row-limit--0", + "max-select-buckets", + "max-select-buckets--0", + "max-select-point", + "max-select-point--0", + "max-select-series", + "max-select-series--0", + "max-series-per-database", + "max-series-per-database--1000000", + "max-size", + "max-sync", + "max-values-per-tag", + "max-values-per-tag--100000", + "max-version", + "max-version--tls13", + "max-writes-pending", + "max_bytes", + "maximum-number-of-columns-per-measurement", + "maximum-number-of-columns-per-table", + "maximum-number-of-columns-reached", + "maximum-number-of-tables-reached", + "maxlevel", + "maxsize", + "may-2021", + "may-2022", + "may-adversely-affect-query-performance", + "may-adversely-affect-system-performance", + "may-impact-cluster-performance", + "may-impact-cluster-performance-1", + "may-improve-query-performance-view-more-info", + "mcache_in_use_bytes", + "mcache_sys_bytes", + "mcrouter", + "md5", + "mdstat", + "mean", + "mean-output-tables", + "measure-query-performance-with-flux-profilers", + "measure-series-cardinality", + "measurement", + "measurement-and-tag-templates", + "measurement-schemas-should-be-homogenous", + "measurement-specification", + "measurement-variable-use-cases", + "measurement_expression", + "measurementcolumn", + "measurements", + "measurements-per-db", + "measurements-tags-and-fields", + "median", + "meet-the-developer-series", + "meetup-videos", + "mem", + "member", + "member-expressions", + "member-user-group", + "members-page", + "members-rolemember", + "membytes", + "memcached", + "memcached-memcached", + "memory", + "memory-allocated-bytes", + "memory-allocated-bytes-total", + "memory-allocations-percentage-visualization-with-static-legend", + "memory-allocations-total", + "memory-bucket-hash-system-bytes", + "memory-frees-total", + "memory-gc-garbage-collection-cpu-fraction", + "memory-gc-garbage-collection-system-bytes", + "memory-heap-allocated-bytes", + "memory-heap-idle-bytes", + "memory-heap-in-use-bytes", + "memory-heap-objects", + "memory-heap-released-bytes", + "memory-heap-system-bytes", + "memory-last-gc-garbage-collection-time-seconds", + "memory-lookups-total", + "memory-management", + "memory-mcache-in-use-bytes", + "memory-mcache-system-bytes", + "memory-mspan-in-use-bytes", + "memory-mspan-system-bytes", + "memory-next-gc-garbage-collection-bytes", + "memory-object-store", + "memory-other-system-bytes", + "memory-stack-in-use-bytes", + "memory-stack-system-bytes", + "memory-system-bytes", + "memory-unused-bytes", + "memory-usage-as-a-single-stat", + "memory-usage-ingesters-k8s", + "memory-usage-k8s", + "memory-usage-routers-k8s", + "memory-used-variable", + "memused-data-output", + "memused-stream-definition", + "merge", + "merge-behavior", + "merge-lines-to-optimize-memory-and-bandwidth", + "merge-schema", + "merge-two-arrays", + "mergekey", + "mesos", + "message", + "message-a-definition", + "message-b-definition", + "message-c-definition", + "messagefield", + "messagefn", + "messagekey", + "messagepack", + "messagetype", + "messaging", + "meta", + "meta-and-data-nodes-are-fully-independent", + "meta-auth-enabled", + "meta-insecure-tls", + "meta-internal-shared-secret", + "meta-node", + "meta-node-configuration", + "meta-node-configuration-files-meta-influxdbconf", + "meta-node-configuration-settings", + "meta-node-file-system-layout", + "meta-node-file-system-overview", + "meta-node-settings", + "meta-node-setup-and-requirements", + "meta-nodes", + "meta-nodes-1", + "meta-only-overwrite-force", + "meta-service", + "meta-tls-enabled", + "metadata", + "metadata-cache-hierarchy", + "metaqueries", + "metaquery-templates", + "metastore", + "metastore-directory", + "metastore-settings", + "method", + "metric", + "metric-buffer", + "metric-filtering", + "metric-version-1", + "metric_name-optional", + "metric_selection-optional", + "metricname", + "metrics", + "metrics-disabled", + "metrics-version-2", + "metrictype", + "metricversion", + "microsoft-azure", + "microsoft-entra-id", + "microsoft-social-sign-on", + "migrate-a-configuration-directory", + "migrate-a-single-configuration-file", + "migrate-an-oss-instance-to-influxdb-enterprise", + "migrate-configuration-file-values", + "migrate-configuration-file-values-1", + "migrate-configuration-file-values-2", + "migrate-continuous-queries", + "migrate-continuous-queries-to-tasks", + "migrate-custom-configuration-settings", + "migrate-data", + "migrate-data-between-influxdb-cloud-organizations", + "migrate-data-from-influxdb-1x-to-influxdb-cloud-dedicated", + "migrate-data-from-influxdb-1x-to-influxdb-cloud-serverless", + "migrate-data-from-influxdb-1x-to-influxdb-clustered", + "migrate-data-from-influxdb-cloud-to-influxdb-cloud-dedicated", + "migrate-data-from-influxdb-cloud-to-influxdb-clustered", + "migrate-data-from-influxdb-cloud-to-influxdb-oss", + "migrate-data-from-influxdb-oss-to-influxdb-cloud", + "migrate-data-from-influxdb-oss-to-other-influxdb-instances", + "migrate-data-from-tsm-to-influxdb-cloud-serverless", + "migrate-data-step-1", + "migrate-data-to-influxdb-cloud-dedicated", + "migrate-data-to-influxdb-cloud-serverless", + "migrate-data-to-influxdb-clustered", + "migrate-dbrp-mappings", + "migrate-dbrp-mappings-to-influxdb-cloud", + "migrate-from-influxctl-1x-to-20", + "migrate-influxdb-oss-instances-to-influxdb-enterprise-clusters", + "migrate-resources", + "migrate-system-buckets", + "migrate-time-series-data", + "migrate-to-a-chronograf-ha-configuration", + "migrate-to-influxdb-cloud-serverless", + "migration", + "migration-flux-script", + "migration-task", + "min", + "min-version", + "min-version--tls10", + "minecraft", + "minimal-config", + "minimal-upgrade", + "minimum-influxctl-version", + "minmax", + "minor-xyz", + "minsize", + "minvalue", + "mirror-influxdb-images", + "mirror-kubit-operator-images", + "miscellaneous", + "miscellaneous-1", + "miscellaneous-2", + "miscellaneous-3", + "miscellaneous-event-updates", + "miscellaneous-fixes-and-updates", + "miscellaneous-functions", + "miscellaneous-operational-fixes", + "miscellaneous-operators", + "missing-data", + "missing-influxql-functions", + "missing-tags-in-the-cq-results", + "missing-values", + "missing-values-null", + "mixing-aggregation-functions-with-non-aggregates", + "mixing-data-types-and-line-protocol-elements", + "mock", + "modal-close", + "modbus", + "mode", + "mode-types", + "models", + "modify-configuration-sections", + "modify-retention-policies-with-alter-retention-policy", + "modify-the-configuration-file-to-point-to-prerequisites", + "modify-the-retention-policy-of-the-chronograf-database", + "modulo", + "mongodb", + "monit", + "monitor", + "monitor-32-bit-raspberry-pi-systems", + "monitor-amazon-web-services-aws", + "monitor-containers-using-the-influxdata-1x-platform", + "monitor-docker", + "monitor-haproxy", + "monitor-influxdb-disk-usage-collected-by-telegraf", + "monitor-influxdb-enterprise", + "monitor-influxdb-enterprise-clusters", + "monitor-influxdb-enterprise-using-a-template", + "monitor-influxdb-enterprise-with-influxdb-cloud", + "monitor-influxdb-enterprise-with-influxdb-oss", + "monitor-influxdb-oss", + "monitor-influxdb-oss-using-a-template", + "monitor-influxdb-performance-metrics", + "monitor-influxdb-servers", + "monitor-infrastructure", + "monitor-kapacitor", + "monitor-kapacitor-performance-metrics", + "monitor-kubernetes", + "monitor-kubernetes-using-the-influxdata-1x-platform", + "monitor-networks", + "monitor-package", + "monitor-raspberry-pi", + "monitor-settings", + "monitor-states", + "monitor-the-influxdata-platform", + "monitor-the-migration-progress", + "monitor-vsphere", + "monitor-windows", + "monitor-with-influxdb-insights", + "monitor-with-templates", + "monitor-your-cluster", + "monitor-your-raspberry-pi", + "monitoring-log-messages-of-level-debug-and-above-for-the-http-service", + "monitoring-logging-and-alerting", + "monitoring-settings", + "monitoringtool", + "month_offset", + "more-puts-into-object-storage-view-more-info", + "more-work-for-the-compactor-_enterprise-only_-view-more-info", + "more-work-for-the-compactor-view-more-info", + "mosaic", + "mosaic-behavior", + "mosaic-controls", + "mosaic-visualization", + "move-large-amounts-of-data-with-sequential-queries", + "moving-average", + "moving-average-rules", + "moving_average", + "movingaverage", + "mqtt", + "mqtt-connector", + "mqtt-package", + "mqtt_consumer", + "msg", + "mspan_in_use_bytes", + "mspan_sys_bytes", + "multi-account-support", + "multi-line-entries", + "multi-node-improvements", + "multi-node-selection", + "multi-organization-and-multi-user-support", + "multi-server-setup", + "multifile", + "multiple-inputs-of-the-same-type", + "multiple-measurement--tags-matching", + "multiple-select-statements-in-a-subquery", + "multiple-statements", + "multiple-statements-in-a-subquery", + "multiple-tables-and-results", + "multiple-templates", + "multiple-two-values", + "multiple-versions-of-influxdb-with-homebrew", + "multiplication", + "multiply-row-values-by-x", + "multiply-values-by-x", + "must-be-done-on-the-same-machine-as-influxdb", + "must-query-at-least-one-field", + "must-use-aggregate-or-selector-functions-when-grouping-by-time", + "myclass", + "myfield", + "mymeasurement", + "mysql", + "mysql-bool-types", + "mysql-dashboard-template", + "mysql-data-source-name", + "mysql-to-flux-data-type-conversion", + "n", + "nagios", + "naivebayesclassifier-package", + "name", + "name-1", + "name-syntax-for-mapped-buckets", + "name-tags-and-string-fields", + "name-your-dashboard", + "namecolumn", + "namespace", + "namespacetag", + "naming-restrictions", + "naming-variables", + "nansequal", + "nanvl", + "nats", + "nats-max-payload-bytes", + "nats-port", + "nats_consumer", + "nav-tree", + "navigate-organizations", + "nebius_cloud_monitoring", + "negatable-constraint", + "negate-boolean-values", + "neptune_apex", + "nested-syntax", + "nested-syntax-1", + "nesting-functions", + "net", + "net_response", + "netflow", + "netstat", + "network", + "network-bandwidth", + "network-time-protocol-ntp", + "networking", + "never-directly-modify-the-catalog", + "new", + "new-aggregator-plugins", + "new-aggregator-plugins-1", + "new-aggregators", + "new-bucket-shorthand-for-influx-delete", + "new-configuration-options", + "new-data-sources", + "new-event-handler", + "new-external-plugins", + "new-external-plugins-1", + "new-features", + "new-features-1", + "new-influxdb-cloud-signups-use-influxdb-3", + "new-influxdb-cloud-signups-use-influxdb-3-1", + "new-input-data-formats-parsers", + "new-input-plugins", + "new-input-plugins-1", + "new-input-plugins-2", + "new-input-plugins-3", + "new-input-plugins-4", + "new-input-plugins-5", + "new-inputs", + "new-inputs-1", + "new-output-data-formats-serializers", + "new-output-data-formats-serializers-1", + "new-output-data-formats-serializers-2", + "new-output-plugins", + "new-output-plugins-1", + "new-output-plugins-2", + "new-output-plugins-3", + "new-output-plugins-4", + "new-outputs", + "new-parsers", + "new-parsers-1", + "new-plugins", + "new-plugins-1", + "new-plugins-10", + "new-plugins-11", + "new-plugins-12", + "new-plugins-13", + "new-plugins-14", + "new-plugins-15", + "new-plugins-16", + "new-plugins-17", + "new-plugins-18", + "new-plugins-19", + "new-plugins-2", + "new-plugins-20", + "new-plugins-21", + "new-plugins-22", + "new-plugins-23", + "new-plugins-3", + "new-plugins-4", + "new-plugins-5", + "new-plugins-6", + "new-plugins-7", + "new-plugins-8", + "new-plugins-9", + "new-processor-plugins", + "new-processor-plugins-1", + "new-processor-plugins-2", + "new-processors", + "new-processors-1", + "new-repository", + "new-restore-options", + "new-slack-apps", + "new-socket-listener-and-socket-writer-plugins", + "new-telegraf-plugins-in-ui", + "new-ui-design", + "newcolumn", + "newrelic", + "next-steps", + "next_gc_ns", + "nfsclient", + "nginx", + "nginx_plus", + "nginx_plus_api", + "nginx_sts", + "nginx_upstream_check", + "nginx_vts", + "no-32-bit-builds", + "no-administrative-functionality", + "no-breaking-influxdb-api-changes", + "no-field-key-in-the-select-clause", + "no-hardware-separation", + "no-measurements-appear-in-my-bucket-even-though-theres-data-in-it", + "no-tasks", + "no-thanks", + "no-verify", + "no_proxy", + "noaa-bay-area-weather-data", + "noaa-ndbc-data", + "noaa-water-sample-data", + "node", + "node-creation", + "node-id", + "nodejs", + "nodes", + "noise", + "nomad", + "non-admin-user-management", + "non-admin-users", + "non-byte-aligned-value-extraction", + "non-correlated-subqueries", + "non-numeric-types", + "non-scalar-subqueries", + "non_negative_derivative", + "non_negative_difference", + "none", + "nonnegative", + "norecoveries", + "normalize", + "normalize-counter-resets", + "normalize-data-with-notebooks", + "normalize-irregular-timestamps", + "normalize-resets-in-counter-metrics", + "not", + "not-a-number", + "not-available-for-all-clusters", + "not-between", + "not-compatible-with-parameters", + "not-equal-to", + "not-exists", + "not-helpful", + "not-in", + "not-recommended", + "not-recommended-for-production", + "not-recommended-in-production-influxdb-enterprise-clusters", + "not-supported", + "not-supported-in-influxdb-cloud", + "not-supported-in-influxdb-cloud-serverless", + "notable-behaviors", + "notable-behaviors-1", + "notable-behaviors-10", + "notable-behaviors-11", + "notable-behaviors-12", + "notable-behaviors-13", + "notable-behaviors-14", + "notable-behaviors-15", + "notable-behaviors-16", + "notable-behaviors-17", + "notable-behaviors-18", + "notable-behaviors-19", + "notable-behaviors-2", + "notable-behaviors-20", + "notable-behaviors-21", + "notable-behaviors-22", + "notable-behaviors-23", + "notable-behaviors-24", + "notable-behaviors-3", + "notable-behaviors-4", + "notable-behaviors-5", + "notable-behaviors-6", + "notable-behaviors-7", + "notable-behaviors-8", + "notable-behaviors-9", + "notable-behaviors-of-mathematical-operators", + "notable-behaviors-of-selector-functions", + "notable-behaviors-of-the-group-by-clause", + "notable-behaviors-of-transformation-functions", + "notable-offset-clause-behaviors", + "notable-select-statement-behaviors", + "notable-subquery-behaviors", + "notation", + "note", + "note-controls", + "note-offline-restore", + "note-on-backslashes", + "note-on-http-api-configuration-and-restarting-kapacitor", + "note-view-example", + "notebook-cell-types", + "notebook-concepts", + "notebook-controls", + "notebooks", + "notebooks-annotations-and-visualization-updates", + "notes-about-examples", + "notification-endpoint", + "notification-endpoints", + "notification-rule", + "november-2021", + "now", + "now-vs-systemtime", + "nrows", + "nsd", + "nsdp", + "nsq", + "nsq_consumer", + "nstat", + "ntables", + "nth_value", + "ntile", + "ntp", + "ntpq", + "null", + "null-column-values", + "null-syntax", + "null-timestamps", + "null-types", + "null-values", + "nullable-constraint", + "nullif", + "nulls", + "num_enabled_tasks", + "num_gc", + "num_subscriptions", + "num_tasks", + "numeric-constraint", + "numeric-literals", + "numeric-types", + "numerical-precision", + "numerical-types", + "numfiles", + "numgc", + "numgoroutine", + "nummeasurements", + "numseries", + "nvidia_smi", + "nvl", + "nvl2", + "o", + "oauth-pkce", + "object-storage", + "object-storage-recommendations", + "object-store", + "object-store-cache-endpoint", + "object-store-configuration", + "object-store-connection-limit", + "object-store-custom-certificates", + "object-store-http2-max-frame-size", + "object-store-http2-only", + "object-store-max-retries", + "object-store-retry-timeout", + "object-store-scaling-strategies", + "obtain-requirements", + "octet_length", + "october-2021", + "october-2022", + "octoprint", + "oee-package", + "offline-legacy-restore", + "offline-legacy-restore-examples", + "offline-restores-overwrite-data", + "offset", + "offset-and-soffset-clauses", + "offset-clause", + "offset-examples", + "offset-following", + "offset-following-1", + "offset-interval", + "offset-preceding", + "offset-syntax", + "offset-time-windows", + "ok", + "oks_triggered", + "old-data-not-being-downsampled", + "oldsegmentdiskbytes", + "omitting-data", + "on", + "on-clause", + "on-first-write-sort-tags-by-query-priority", + "on-this-page", + "onboard-service-new-call-total", + "onboard-service-new-duration", + "onboarding-wizards-for-common-programming-languages", + "onempty", + "ongoing-maintenance", + "ongoing-support", + "online-legacy-restore", + "online-legacy-restore-examples", + "only-amd64-x86-architectures", + "only-partition-by-tags-that-always-have-a-value", + "only-use-the-appinstance-to-scale-component-replicas", + "only-works-with-sql", + "only-works-with-sql-1", + "onnonmonotonic", + "op_elapsed", + "op_event", + "op_name", + "opcua", + "opcua_listener", + "open-a-repl-session", + "open-feature-requests", + "open-github-issues", + "open-source-license-for-chronograf", + "open-source-license-for-influxdb", + "open-the-edit-database-token-dialog", + "openconnections", + "openldap", + "openntpd", + "opensearch", + "opensearch_query", + "openshift", + "openshift-route", + "opensmtpd", + "openstack", + "opentelemetry", + "opentsdb", + "opentsdb-input", + "opentsdb-protocol-support-in-influxdb", + "opentsdb-settings", + "opentsdb-telnet-put-api", + "openweathermap", + "operand", + "operands-and-primary-expressions", + "operands-must-be-the-same-type", + "operate-on-arrays", + "operate-on-columns", + "operate-on-dictionaries", + "operate-on-durations", + "operate-on-dynamic-types", + "operate-on-floats", + "operate-on-integers", + "operate-on-records", + "operate-on-strings", + "operate-on-tables", + "operate-on-time", + "operate-on-timestamps", + "operate-on-uintegers", + "operating-system", + "operation-keys", + "operation/ApplyTemplate", + "operation/CreateCheck", + "operation/CreateNotificationEndpoint", + "operation/CreateNotificationRule", + "operation/CreateStack", + "operation/DeleteAuthorizationsID", + "operation/DeleteBucketsID", + "operation/DeleteBucketsIDLabelsID", + "operation/DeleteBucketsIDMembersID", + "operation/DeleteBucketsIDOwnersID", + "operation/DeleteChecksID", + "operation/DeleteChecksIDLabelsID", + "operation/DeleteDBRPID", + "operation/DeleteDashboardsID", + "operation/DeleteDashboardsIDCellsID", + "operation/DeleteDashboardsIDLabelsID", + "operation/DeleteDashboardsIDMembersID", + "operation/DeleteDashboardsIDOwnersID", + "operation/DeleteLabelsID", + "operation/DeleteLegacyAuthorizationsID", + "operation/DeleteNotificationEndpointsID", + "operation/DeleteNotificationEndpointsIDLabelsID", + "operation/DeleteNotificationRulesID", + "operation/DeleteNotificationRulesIDLabelsID", + "operation/DeleteOrgsID", + "operation/DeleteOrgsIDMembersID", + "operation/DeleteOrgsIDOwnersID", + "operation/DeleteOrgsIDSecretsID", + "operation/DeleteRemoteConnectionByID", + "operation/DeleteReplicationByID", + "operation/DeleteScrapersID", + "operation/DeleteScrapersIDLabelsID", + "operation/DeleteScrapersIDMembersID", + "operation/DeleteScrapersIDOwnersID", + "operation/DeleteScriptsID", + "operation/DeleteSourcesID", + "operation/DeleteStack", + "operation/DeleteTasksID", + "operation/DeleteTasksIDLabelsID", + "operation/DeleteTasksIDMembersID", + "operation/DeleteTasksIDOwnersID", + "operation/DeleteTasksIDRunsID", + "operation/DeleteTelegrafsID", + "operation/DeleteTelegrafsIDLabelsID", + "operation/DeleteTelegrafsIDMembersID", + "operation/DeleteTelegrafsIDOwnersID", + "operation/DeleteUsersID", + "operation/DeleteVariablesID", + "operation/DeleteVariablesIDLabelsID", + "operation/ExportTemplate", + "operation/GetAuthorizations", + "operation/GetAuthorizationsID", + "operation/GetBackupKV", + "operation/GetBackupMetadata", + "operation/GetBackupShardId", + "operation/GetBuckets", + "operation/GetBucketsID", + "operation/GetBucketsIDLabels", + "operation/GetBucketsIDMembers", + "operation/GetBucketsIDOwners", + "operation/GetChecks", + "operation/GetChecksID", + "operation/GetChecksIDLabels", + "operation/GetChecksIDQuery", + "operation/GetConfig", + "operation/GetDBRPs", + "operation/GetDBRPsID", + "operation/GetDashboards", + "operation/GetDashboardsID", + "operation/GetDashboardsIDCellsIDView", + "operation/GetDashboardsIDLabels", + "operation/GetDashboardsIDMembers", + "operation/GetDashboardsIDOwners", + "operation/GetDebugPprofAllProfiles", + "operation/GetDebugPprofAllocs", + "operation/GetDebugPprofBlock", + "operation/GetDebugPprofCmdline", + "operation/GetDebugPprofGoroutine", + "operation/GetDebugPprofHeap", + "operation/GetDebugPprofMutex", + "operation/GetDebugPprofProfile", + "operation/GetDebugPprofThreadCreate", + "operation/GetDebugPprofTrace", + "operation/GetFlags", + "operation/GetHealth", + "operation/GetLabels", + "operation/GetLabelsID", + "operation/GetLegacyAuthorizations", + "operation/GetLegacyAuthorizationsID", + "operation/GetLegacyQuery", + "operation/GetMe", + "operation/GetMetrics", + "operation/GetNotificationEndpoints", + "operation/GetNotificationEndpointsID", + "operation/GetNotificationEndpointsIDLabels", + "operation/GetNotificationRules", + "operation/GetNotificationRulesID", + "operation/GetNotificationRulesIDLabels", + "operation/GetNotificationRulesIDQuery", + "operation/GetOrgLimitsID", + "operation/GetOrgUsageID", + "operation/GetOrgs", + "operation/GetOrgsID", + "operation/GetOrgsIDMembers", + "operation/GetOrgsIDOwners", + "operation/GetOrgsIDSecrets", + "operation/GetPing", + "operation/GetQuerySuggestions", + "operation/GetQuerySuggestionsName", + "operation/GetReady", + "operation/GetRemoteConnectionByID", + "operation/GetRemoteConnections", + "operation/GetReplicationByID", + "operation/GetReplications", + "operation/GetResources", + "operation/GetRoutes", + "operation/GetScrapers", + "operation/GetScrapersID", + "operation/GetScrapersIDLabels", + "operation/GetScrapersIDMembers", + "operation/GetScrapersIDOwners", + "operation/GetScripts", + "operation/GetScriptsID", + "operation/GetScriptsIDParams", + "operation/GetSetup", + "operation/GetSources", + "operation/GetSourcesID", + "operation/GetSourcesIDBuckets", + "operation/GetSourcesIDHealth", + "operation/GetTasks", + "operation/GetTasksID", + "operation/GetTasksIDLabels", + "operation/GetTasksIDLogs", + "operation/GetTasksIDMembers", + "operation/GetTasksIDOwners", + "operation/GetTasksIDRuns", + "operation/GetTasksIDRunsID", + "operation/GetTasksIDRunsIDLogs", + "operation/GetTelegrafPlugins", + "operation/GetTelegrafs", + "operation/GetTelegrafsID", + "operation/GetTelegrafsIDLabels", + "operation/GetTelegrafsIDMembers", + "operation/GetTelegrafsIDOwners", + "operation/GetUsers", + "operation/GetUsersID", + "operation/GetVariables", + "operation/GetVariablesID", + "operation/GetVariablesIDLabels", + "operation/HeadPing", + "operation/ListStacks", + "operation/PatchAuthorizationsID", + "operation/PatchBucketsID", + "operation/PatchChecksID", + "operation/PatchDBRPID", + "operation/PatchDashboardsID", + "operation/PatchDashboardsIDCellsID", + "operation/PatchDashboardsIDCellsIDView", + "operation/PatchLabelsID", + "operation/PatchLegacyAuthorizationsID", + "operation/PatchNotificationEndpointsID", + "operation/PatchNotificationRulesID", + "operation/PatchOrgsID", + "operation/PatchOrgsIDSecrets", + "operation/PatchRemoteConnectionByID", + "operation/PatchReplicationByID", + "operation/PatchScrapersID", + "operation/PatchScriptsID", + "operation/PatchSourcesID", + "operation/PatchTasksID", + "operation/PatchUsersID", + "operation/PatchVariablesID", + "operation/PostAuthorizations", + "operation/PostBuckets", + "operation/PostBucketsIDLabels", + "operation/PostBucketsIDMembers", + "operation/PostBucketsIDOwners", + "operation/PostChecksIDLabels", + "operation/PostDBRP", + "operation/PostDashboards", + "operation/PostDashboardsIDCells", + "operation/PostDashboardsIDLabels", + "operation/PostDashboardsIDMembers", + "operation/PostDashboardsIDOwners", + "operation/PostDelete", + "operation/PostLabels", + "operation/PostLegacyAuthorizations", + "operation/PostLegacyAuthorizationsIDPassword", + "operation/PostLegacyWrite", + "operation/PostNotificationEndpointIDLabels", + "operation/PostNotificationRuleIDLabels", + "operation/PostOrgs", + "operation/PostOrgsIDMembers", + "operation/PostOrgsIDOwners", + "operation/PostOrgsIDSecrets", + "operation/PostQuery", + "operation/PostQueryAnalyze", + "operation/PostQueryAst", + "operation/PostQueryV1", + "operation/PostRemoteConnection", + "operation/PostReplication", + "operation/PostRestoreBucketID", + "operation/PostRestoreBucketMetadata", + "operation/PostRestoreKV", + "operation/PostRestoreSQL", + "operation/PostRestoreShardId", + "operation/PostScrapers", + "operation/PostScrapersIDLabels", + "operation/PostScrapersIDMembers", + "operation/PostScrapersIDOwners", + "operation/PostScripts", + "operation/PostScriptsIDInvoke", + "operation/PostSetup", + "operation/PostSetupUser", + "operation/PostSignin", + "operation/PostSignout", + "operation/PostSources", + "operation/PostTasks", + "operation/PostTasksIDLabels", + "operation/PostTasksIDMembers", + "operation/PostTasksIDOwners", + "operation/PostTasksIDRuns", + "operation/PostTasksIDRunsIDRetry", + "operation/PostTelegrafs", + "operation/PostTelegrafsIDLabels", + "operation/PostTelegrafsIDMembers", + "operation/PostTelegrafsIDOwners", + "operation/PostUsers", + "operation/PostUsersIDPassword", + "operation/PostValidateReplicationByID", + "operation/PostVariables", + "operation/PostVariablesIDLabels", + "operation/PostWrite", + "operation/PostWriteV1", + "operation/PutChecksID", + "operation/PutDashboardsIDCells", + "operation/PutMePassword", + "operation/PutNotificationEndpointsID", + "operation/PutNotificationRulesID", + "operation/PutTelegrafsID", + "operation/PutUsersIDPassword", + "operation/PutVariablesID", + "operation/ReadStack", + "operation/UninstallStack", + "operation/UpdateStack", + "operation/createMeasurementSchema", + "operation/getMeasurementSchema", + "operation/getMeasurementSchemas", + "operation/updateMeasurementSchema", + "operational-enhancements", + "operational-improvements", + "operations", + "operator", + "operator-precedence", + "operator-token", + "operators", + "opsgenie", + "opsgenie-package", + "opsgenie-setup", + "opsgenie-v1", + "opsgenie-v2", + "opsgenie2", + "opt-out-of-telemetry-reporting", + "optimal-server-counts", + "optimize-flux-queries", + "optimize-queries", + "optimize-queries-to-reduce-impact-to-your-cluster", + "optimize-slow-or-expensive-queries", + "optimize-writes-to-influxdb", + "optimize-writes-to-influxdb-3-core", + "optimize-writes-to-influxdb-3-enterprise", + "optimize-your-queries", + "optimize-your-query", + "option", + "option-assignment", + "option-environment-variables", + "optional-configuration-groups", + "optional-download-install-and-use-the-influx-cli", + "optional-environment-variables", + "optional-google-domains", + "optional-namespace-monitoring-data", + "optional-sasl-configuration", + "optional-update-primary-hostnames", + "optional-variables", + "optional-verify-the-data-node-was-added-to-the-cluster", + "optional-verify-the-influxdb-meta-service-is-running", + "optional-verify-the-influxdb-service-is-running", + "optional-verify-the-meta-nodes-are-added-to-the-cluster", + "options", + "options-1", + "options-10", + "options-11", + "options-12", + "options-13", + "options-14", + "options-2", + "options-3", + "options-4", + "options-5", + "options-6", + "options-7", + "options-8", + "options-9", + "options-if-sasl-mechanism-is-oauthbearer", + "or", + "or-in-the-where-clause", + "oracle", + "order", + "order-by-clause", + "order-by-time-desc", + "orderby", + "org", + "organization", + "organization-1", + "organization-and-bucket-limits", + "organization-bound-users", + "organization-id-in-the-cli", + "organization-id-in-the-ui", + "organization-management-differences", + "organization-service-call-total", + "organization-service-duration", + "organization-service-new-call-total", + "organization-service-new-duration", + "organization-service-new-error-total", + "organizations-total", + "orgid", + "origin", + "ortime", + "oss-conversion", + "oss-urls", + "other", + "other-1", + "other-10", + "other-11", + "other-2", + "other-3", + "other-4", + "other-5", + "other-6", + "other-7", + "other-8", + "other-9", + "other-changes", + "other-columns", + "other-data", + "other-deployment-options", + "other-features", + "other-helpful-resources", + "other-highlights", + "other-influxdb-syntaxes", + "other-installation-options", + "other-operators", + "other-server-option-flags", + "other-service-options", + "other-telegraf-configuration-options", + "other-updates", + "other_sys_bytes", + "othercolumns", + "others", + "out-of-memory-loops", + "outer-joins", + "outer-query-result", + "outer-query-results", + "output", + "output-1", + "output-a-diff-between-two-streams-of-tables", + "output-all-influxdb-1x-continuous-queries", + "output-amon", + "output-amqp", + "output-application_insights", + "output-azure_data_explorer", + "output-azure_monitor", + "output-basic-sample-data-with-boolean-values", + "output-basic-sample-data-with-float-values", + "output-basic-sample-data-with-integer-values", + "output-basic-sample-data-with-numeric-boolean-values", + "output-basic-sample-data-with-string-values", + "output-basic-sample-data-with-unsigned-integer-values", + "output-bigquery", + "output-clarify", + "output-cloud_pubsub", + "output-cloudwatch", + "output-cloudwatch_logs", + "output-configuration", + "output-configuration-examples", + "output-cratedb", + "output-current-cardinality-with-your-cardinality-limit", + "output-data", + "output-data-formats", + "output-data-formats-serializers", + "output-data-requirements", + "output-data-schema", + "output-datadog", + "output-details", + "output-discard", + "output-dynatrace", + "output-elasticsearch", + "output-event_hubs", + "output-exec", + "output-execd", + "output-file", + "output-format", + "output-formats", + "output-graphite", + "output-graylog", + "output-groundwork", + "output-health", + "output-help-information-for-the-downgrade-command", + "output-http", + "output-influxdb", + "output-influxdb_v2", + "output-information-about-tsi-index-files", + "output-instrumental", + "output-iotdb", + "output-kafka", + "output-kinesis", + "output-librato", + "output-line-protocol", + "output-logzio", + "output-loki", + "output-measurement-data-stored-in-the-index", + "output-mongodb", + "output-mqtt", + "output-nats", + "output-nebius_cloud_monitoring", + "output-newrelic", + "output-nsq", + "output-opensearch", + "output-opentelemetry", + "output-opentsdb", + "output-organization-limits-in-a-table", + "output-parquet", + "output-plugin", + "output-plugin-updates", + "output-plugin-updates-1", + "output-plugin-updates-10", + "output-plugin-updates-11", + "output-plugin-updates-12", + "output-plugin-updates-13", + "output-plugin-updates-14", + "output-plugin-updates-15", + "output-plugin-updates-16", + "output-plugin-updates-17", + "output-plugin-updates-18", + "output-plugin-updates-19", + "output-plugin-updates-2", + "output-plugin-updates-20", + "output-plugin-updates-21", + "output-plugin-updates-22", + "output-plugin-updates-23", + "output-plugin-updates-24", + "output-plugin-updates-25", + "output-plugin-updates-26", + "output-plugin-updates-27", + "output-plugin-updates-3", + "output-plugin-updates-4", + "output-plugin-updates-5", + "output-plugin-updates-6", + "output-plugin-updates-7", + "output-plugin-updates-8", + "output-plugin-updates-9", + "output-plugins", + "output-plugins-1", + "output-postgresql", + "output-prometheus_client", + "output-query-results-to-a-parquet-file", + "output-raw-series-data-stored-in-the-index", + "output-record", + "output-redistimeseries", + "output-remotefile", + "output-riemann", + "output-scalar-values", + "output-schema", + "output-sensu", + "output-signalfx", + "output-socket_writer", + "output-sql", + "output-stackdriver", + "output-stomp", + "output-structure", + "output-sumologic", + "output-syslog", + "output-table", + "output-table-1", + "output-tables", + "output-the-last-three-rows-before-the-last-row-in-each-input-table", + "output-the-last-three-rows-in-each-input-table", + "output-timestream", + "output-to-a-parquet-file", + "output-tokens-to-a-parquet-file", + "output-warp10", + "output-wavefront", + "output-websocket", + "output-yandex_cloud_monitoring", + "output-zabbix", + "output_ordering", + "outputcolumn", + "outputgroupnametag", + "outputs", + "outputs-1", + "outputs-2", + "outputs-3", + "outputs-4", + "outputs-5", + "outputs-6", + "outputs-7", + "outputs-8", + "outputs-9", + "outputservicenametag", + "over-clause", + "overlapping-data-and-deduplication", + "overlay", + "override", + "override-configuration-values", + "override-flux-task-options", + "override-flux-task-options-api", + "override-kapacitor-configurations", + "overrides", + "overriding-default-settings-may-affect-overall-cluster-performance", + "overview", + "overview-of-go-runtime-profiles", + "overview-of-notebooks", + "overwrite-an-existing-key-value-pair-in-a-dictionary", + "overwrite-pid-file", + "owner", + "p", + "p4runtime", + "package-clause", + "package-fixes", + "package-initialization", + "package-main", + "package-manager", + "package-upgrade", + "package-upgrade-1", + "packages", + "page-feedback", + "pagefeedback", + "pagefeedbacktext", + "pagerduty", + "pagerduty-package", + "pagerduty-setup", + "pagerduty-v1", + "pagerduty-v2", + "pagerduty2", + "pagerdutyurl", + "paginate-points", + "paginate-points-and-include-several-clauses", + "paginate-results-by-3-and-return-the-2nd-page-of-results", + "paginate-results-from-each-series-by-3-and-return-the-2nd-page-of-each-series", + "paginate-series", + "paginate-series-and-include-all-clauses", + "pairs", + "pandas", + "parameter", + "parameter-changes", + "parameter-data-types", + "parameter-notation", + "parameterize-an-sql-query", + "parameters", + "parameters-1", + "parameters-2", + "parameters-3", + "parameters-4", + "parameters-5", + "parameters-6", + "parameters-only-supported-in-where-expressions", + "parametric-polymorphism", + "params", + "parquet", + "parquet-mem-cache-prune-interval", + "parquet-mem-cache-prune-percentage", + "parquet-mem-cache-query-path-duration", + "parquet-mem-cache-size", + "parquet-mem-cache-size-mb", + "parquet-storage", + "parquetexec", + "parquetexec-expressions", + "parquetexec_a", + "parquetexec_b", + "parquetexec_b-expressions", + "parse-and-use-json-data-to-restructure-tables", + "parse-json-and-use-array-functions-to-manipulate-into-a-table", + "parse-json-into-flux-types", + "parse-metadata-into-tags", + "parse-mode", + "parse-multivalue-plugin--split", + "parse-timestamp-abbreviations", + "parse-units-of-time-from-a-timestamp", + "parsemode", + "parser", + "parser-plugin-updates", + "parser-plugin-updates-1", + "parser-plugin-updates-10", + "parser-plugin-updates-2", + "parser-plugin-updates-3", + "parser-plugin-updates-4", + "parser-plugin-updates-5", + "parser-plugin-updates-6", + "parser-plugin-updates-7", + "parser-plugin-updates-8", + "parser-plugin-updates-9", + "parser-updates", + "parser-updates-1", + "parser-updates-2", + "parsers", + "parsers-1", + "parsers-2", + "parsers-3", + "parsers-4", + "parsing-failed-for-write_lp-endpoint", + "parsing-metrics", + "partevents", + "partial-write-of-line-protocol-occurred", + "partition-by-clause", + "partition-by-tag-buckets", + "partition-by-tags-that-you-commonly-query-for-a-specific-value", + "partition-guides", + "partition-key-size-limit", + "partition-keys", + "partition-related-queries", + "partition-template-parts", + "partition-template-requirements-and-guidelines", + "partition-templates", + "partition-templates-can-only-be-applied-on-create", + "partition-templates-cant-be-updated", + "partitioning-best-practices", + "partitioning-by-distinct-tag-values", + "partitions", + "partitions-in-the-query-life-cycle", + "parts-of-a-check", + "pass-arguments-to-plugins", + "pass-configuration-arguments", + "pass-configuration-options-to-the-service", + "pass-multiple-parameter-values-to-a-script", + "pass-raw-flux-via-stdin-pipe", + "pass-through-transformation", + "passenger", + "passive-node-experimental", + "passive-node-setup-experimental", + "password", + "password-hash", + "password-or-token", + "password-requirements", + "password-service-new-call-total", + "password-service-new-duration", + "password-service-new-error-total", + "path", + "path-1", + "path-2", + "path-3", + "path-parameters", + "path-parameters-1", + "path-parameters-2", + "path-parameters-3", + "path-parameters-4", + "path-parameters-5", + "pathtoexamplecsv", + "pattern-for-template-variable-query-parameters", + "pause_total_ns", + "pausetotalns", + "pbkdf2-sha256", + "pbkdf2-sha512", + "pearsonr", + "pending-key", + "percent-encode-special-symbols-in-postgresql-dsns", + "percent_rank", + "percentile", + "percentile-amp-quantile", + "percentile-compared-to-other-influxql-functions", + "percentile-versus-quantile", + "percona-bool-types", + "percona-data-source-name", + "percona-to-flux-data-type-conversion", + "perform-a-basic-influxql-query", + "perform-a-basic-sql-query", + "perform-a-bitwise-and-not-operation", + "perform-a-bitwise-and-not-operation-on-a-stream-of-tables", + "perform-a-bitwise-and-operation", + "perform-a-bitwise-and-operation-on-a-stream-of-tables", + "perform-a-bitwise-or-operation", + "perform-a-bitwise-or-operation-on-a-stream-of-tables", + "perform-a-bitwise-xor-operation", + "perform-a-bitwise-xor-operation-on-a-stream-of-tables", + "perform-a-full-backup", + "perform-a-full-outer-join", + "perform-a-left-outer-join", + "perform-a-linear-regression-on-a-dataset", + "perform-a-metadata-only-backup", + "perform-a-right-outer-join", + "perform-additional-aggregate-operations-on-aggregate-values", + "perform-an-incremental-backup", + "perform-an-incremental-backup-on-a-single-database", + "perform-an-inner-join", + "perform-an-ungrouped-aggregation", + "perform-arithmetic-operations-on-durations", + "perform-arithmetic-operations-on-floats", + "perform-arithmetic-operations-on-integers", + "perform-arithmetic-operations-on-uintegers", + "perform-basic-arithmetic-on-an-epoch-timestamp", + "perform-basic-arithmetic-on-an-rfc3339-like-date-time-string", + "perform-bitwise-operations-on-integers", + "perform-bitwise-operations-on-uintegers", + "perform-join-operations", + "perform-mathematical-operations", + "perform-the-calculation", + "perform-the-upgrade", + "performance", + "performance-1", + "performance-and-security-improvements", + "performance-characteristics", + "performance-differences", + "performance-enhancement", + "performance-enhancements", + "performance-improvements", + "performance-improvements-1", + "performance-improvements-to-dashboards-and-queries", + "performance-tips", + "period", + "periodcount", + "periodic-license-checks", + "periodic-tsm-snapshots", + "perl", + "permission-format", + "permission-required-to-create-mapped-buckets", + "permission-to-statement", + "permissions", + "permissions-in-influxdb-enterprise", + "permissions-scope", + "persist-queue-depth", + "persist-task-queue-duration", + "persistent-disk-storage", + "persistent-volume-fixes", + "pf", + "pgbouncer", + "phase-1-steps", + "phase-2-steps", + "phase-3-process", + "phase-4-process", + "php", + "phpfpm", + "physical-plan", + "physical-plan-data-flow", + "physical-plan-leaf-nodes", + "pi", + "pid-file", + "ping", + "ping-auth-enabled--false", + "ping-http-endpoint", + "pingreq", + "pipe", + "pipe-expressions", + "pipe-forward-operator", + "pipe-forwardable-function-example", + "pipeline-architecture", + "pipeline-validity", + "pipelines", + "pipelines-as-graphs", + "pivot", + "pivot-and-write-data-to-influxdb", + "pivot-data-into-a-relational-schema", + "pivot-fields-into-columns", + "pivot-fields-into-columns-for-mathematic-calculations", + "pivot-influxdb-fields-into-columns", + "pivot-is-more-performant", + "pivot-lat-and-lon-fields-into-columns", + "pivot-vs-join", + "pkg", + "pkger-service-call-total", + "pkger-service-duration", + "pkger-service-template-export", + "plan-for-custom-partitioning", + "plannedtime", + "planner-package", + "planning_time", + "platform-support", + "plex", + "plugin", + "plugin-dir", + "plugin-registry", + "plugin-updates", + "plugin-updates-1", + "plugins", + "plugins-1", + "plugins-10", + "plugins-11", + "plugins-12", + "plugins-13", + "plugins-14", + "plugins-15", + "plugins-16", + "plugins-17", + "plugins-18", + "plugins-19", + "plugins-2", + "plugins-20", + "plugins-21", + "plugins-22", + "plugins-23", + "plugins-24", + "plugins-25", + "plugins-3", + "plugins-4", + "plugins-5", + "plugins-6", + "plugins-7", + "plugins-8", + "plugins-9", + "point", + "pointreq", + "pointreqhh-enterprise-only", + "pointreqlocal-enterprise-only", + "pointreqremote-enterprise-only", + "points-dropped-due-to-partial-writes", + "points-in-shard-write-requests-with-errors", + "points-in-shard-writes", + "points-in-shard-writes-with-errors", + "points-in-successful-shard-write-requests", + "points-in-write-requests", + "points-per-second", + "points_received", + "points_written", + "pointswritten", + "pointswrittendropped", + "pointswrittenfail", + "pointswrittenok", + "pointswrittenok-1", + "policies-and-procedures", + "polygon", + "polyline-package", + "polymorphism", + "pool-max-idle-streams", + "pool-max-idle-time", + "populate-sensitive-credentials-with-secrets", + "population", + "port", + "port-update-to-8086", + "port_name", + "portable-format-directory-structure", + "ports", + "pos", + "position", + "possible-with-flux", + "post", + "post-alerts-from-a-defined-handler", + "post-alerts-from-a-tickscript", + "post-cancel-repair", + "post-repair", + "post-request-format", + "post-settings-in-kapacitorconf", + "post-templating", + "post-upgrade", + "postfix", + "postgresql", + "postgresql-compatible-database-requirements", + "postgresql-data-source-name", + "postgresql-instances-without-tls-or-ssl", + "postgresql-to-flux-data-type-conversion", + "postgresql_extensible", + "potential-causes", + "potential-solutions", + "pow", + "power", + "powerdns", + "powerdns_recursor", + "pprof-auth-enabled--false", + "pprof-disabled", + "pprof-enabled", + "pprof-enabled--true", + "pprof-endpoints", + "pre-configure-influxdb-connection-settings", + "pre-process-data-before-writing", + "prebuilt-dashboards", + "prebuilt-dashboards-in-chronograf", + "precalculating-expensive-queries", + "precision", + "precision--", + "precreator", + "predefined-dashboard-variables", + "predefined-template-variables", + "predicate", + "predicate-expression", + "predicate-expressions", + "predicate-function", + "predicate-functions", + "predicates-with-special-characters-or-keywords", + "predict", + "predict-field-values-associated-with-a-field-key", + "predictive-analysis", + "predictors", + "preemptive-cache-age", + "pref-cloud", + "pref-oss", + "pref-tabs", + "prefix", + "prefix-for-query-controller-metrics-changed", + "prep_pg_dumpawk", + "prepare-for-scheduled-downtime", + "prepare-influxdb-buckets", + "prepare-influxdb-databases", + "prepend-csv-data-with-annotation-headers", + "prerequisite", + "prerequisites", + "presentation-mode", + "preserve-columns", + "preserve-duplicate-points", + "preset-time-buckets", + "preset-time-windows", + "pretty", + "pretty-print-json-output", + "prevent-injection-attacks", + "preview-data-output", + "previewrun-mode", + "pricing-updates-and-azure-region", + "pricing-vectors", + "primary-key", + "primary-keys", + "print-column-details-for-a-single-measurement", + "print-information-about-runs-that-will-be-retried", + "printer", + "priority", + "private-influxdb-cloud-offering", + "private-ip-considerations", + "private-ip-validation", + "private-registry-air-gapped", + "problem", + "process", + "process-data-with-invokable-scripts", + "process-input-as-csv", + "process-or-transform-your-data", + "processes", + "processing", + "processing-engine", + "processing-engine-improvements", + "processing-engine-reference", + "processing-the-next-row", + "processor", + "processor-aws_ec2", + "processor-clone", + "processor-configuration", + "processor-converter", + "processor-date", + "processor-dedup", + "processor-defaults", + "processor-enum", + "processor-execd", + "processor-filepath", + "processor-filter", + "processor-geoip", + "processor-ifname", + "processor-lookup", + "processor-noise", + "processor-override", + "processor-parser", + "processor-pivot", + "processor-plugin", + "processor-plugin-updates", + "processor-plugin-updates-1", + "processor-plugin-updates-10", + "processor-plugin-updates-11", + "processor-plugin-updates-2", + "processor-plugin-updates-3", + "processor-plugin-updates-4", + "processor-plugin-updates-5", + "processor-plugin-updates-6", + "processor-plugin-updates-7", + "processor-plugin-updates-8", + "processor-plugin-updates-9", + "processor-plugins", + "processor-port_name", + "processor-printer", + "processor-regex", + "processor-rename", + "processor-reverse_dns", + "processor-s2geo", + "processor-scale", + "processor-snmp_lookup", + "processor-split", + "processor-starlark", + "processor-strings", + "processor-tag_limit", + "processor-template", + "processor-timestamp", + "processor-topk", + "processor-unpivot", + "processor-updates", + "processors", + "processors-1", + "processors-2", + "processors-3", + "processors-4", + "processors-5", + "processors-6", + "processors-7", + "processors-8", + "processors-9", + "procstat", + "proctotal-data-output", + "proctotal-stream-definition", + "prod_line", + "product-and-feature-end-of-life-procedures", + "product-dropdown", + "production-ready-replicate-data-remotely", + "productionevents", + "profile-all-memory-allocations", + "profile-blocking-operations", + "profile-cpu", + "profile-goroutines", + "profile-heap-memory-allocations", + "profile-mutual-exclusions-mutexes", + "profile-thread-creation", + "profiler-package", + "profiling", + "programmatically-access-node-labels", + "project", + "projection", + "projection-1", + "projection-2", + "projectionexec", + "prom-read-auth-enabled--false", + "prometheus", + "prometheus-client-libraries", + "prometheus-endpoints-support-in-influxdb", + "prometheus-exporters-and-integrations", + "prometheus-format", + "prometheus-metric-parsing-formats", + "prometheus-node-exporter", + "prometheus-package", + "prometheus-remote-read-and-write-api-support", + "prometheus-remote-read-and-write-support", + "prometheus-remote-write", + "prometheus-statefulset", + "prometheus_client", + "promql-package", + "promreadreq", + "promwritereq", + "properties", + "properties-of-time-series-data", + "property-methods", + "pros-of-external-monitoring", + "pros-of-internal-monitoring", + "protocol--tcp", + "protocol-buffers-additional-settings", + "prototype-your-app-on-influxdb-cloud-serverless", + "provide-a-custom-certificate-authority-bundle", + "provide-etcd-authentication-credentials", + "provide-etcd-tls-credentials", + "provide-influxdb-authentication-credentials", + "provide-influxdb-connection-credentials", + "provide-plugins-to-nodes-that-run-them", + "provide-required-authentication-credentials", + "provide-vault-server-address-and-token", + "provide-your-token", + "proxmox", + "pruning-predicate", + "psi", + "public-beta", + "public-registry", + "publish-and-subscribe", + "publish-to-multiple-topics-from-a-defined-handler", + "publish-your-plugin", + "puppetagent", + "purgatory", + "purge-interval", + "push", + "push-to-handler", + "pushbullet-package", + "pushdown-functions-and-function-combinations", + "pushdown-functions-in-use", + "pushing-vs-pulling-metrics", + "pushover", + "pushover-priority-levels", + "pushover-setup", + "pyarrow", + "python", + "python-flight-client", + "python-flight-sql-dbapi-client", + "python-plugins-and-the-processing-engine", + "q", + "qc-query-controller-statistics", + "qos", + "quantile", + "quantile-as-a-selector", + "quantile-as-an-aggregate", + "quay-default-paths", + "quay-file-system-overview", + "quayio", + "querier", + "querier-scaling-strategies", + "queries", + "queries-in-a-cluster", + "queries-should-return-one-table", + "queries-with-fill-when-no-data-fall-within-the-querys-time-range", + "queries-with-fillprevious-when-the-previous-result-falls-outside-the-querys-time-range", + "queries-with-fillprevious-when-the-previous-result-is-outside-the-queried-time-range", + "queries-with-no-data-in-the-queried-time-range", + "queriesactive", + "queriesexecuted", + "queriesfinished", + "query", + "query-1", + "query-2", + "query-a-distinct-value-cache", + "query-a-distinct-values-cache", + "query-a-last-value-cache", + "query-a-last-values-cache", + "query-a-mapped-bucket-with-influxql", + "query-a-non-default-retention-policy", + "query-a-raw-csv-string", + "query-a-remote-influxdb-cloud-instance", + "query-a-single-field", + "query-a-sql-data-source", + "query-a-system-table", + "query-a-system-table-and-order-by-a-specific-column", + "query-a-system-table-and-return-json-formatted-output", + "query-a-time-range-relative-to-now", + "query-all-data-from-the-last-month", + "query-all-fields-and-filter-by-tags", + "query-amazon-rds-postgresql-database", + "query-an-absolute-time-range", + "query-an-absolute-time-range-using-unix-timestamps", + "query-an-annotated-csv-string", + "query-analysis", + "query-and-storage-enhancements", + "query-and-visualize-data", + "query-annotated-csv-data-from-a-url", + "query-annotated-csv-data-from-a-url-using-the-requests-package", + "query-annotated-csv-data-from-file", + "query-annotated-csv-from-a-socket-connection", + "query-api", + "query-availability", + "query-brownout", + "query-builder", + "query-builder-or-script-editor", + "query-cardinality-of-data-written-in-the-last-4-hours", + "query-clickhouse", + "query-concurrency", + "query-concurrency--0", + "query-cpu-and-memory-usage", + "query-csv-data-from-a-file", + "query-csv-data-from-a-url", + "query-data", + "query-data-and-return-json-formatted-results", + "query-data-and-write-results-to-a-file", + "query-data-collected-last-friday", + "query-data-collected-last-monday", + "query-data-collected-last-saturday", + "query-data-collected-last-sunday", + "query-data-collected-last-thursday", + "query-data-collected-last-tuesday", + "query-data-collected-last-wednesday", + "query-data-from-a-remote-influxdb-cloud-instance", + "query-data-from-influxdb", + "query-data-from-influxdb-3-system-tables", + "query-data-from-influxdb-in-a-specific-measurement", + "query-data-from-influxdb-in-a-specified-time-range", + "query-data-from-influxdb-with-go", + "query-data-from-influxdb-with-python", + "query-data-from-last-month", + "query-data-from-last-week", + "query-data-from-the-current-week", + "query-data-from-this-calendar-month", + "query-data-from-this-month", + "query-data-from-this-year", + "query-data-from-today", + "query-data-from-yesterday", + "query-data-in-influxdb", + "query-data-in-the-data-explorer", + "query-data-using-a-time-zone-offset", + "query-data-using-influxql", + "query-data-using-sql", + "query-data-with-a-select-statement", + "query-data-with-a-select-statement-and-an-into-clause", + "query-data-with-a-select-statement-and-return-pretty-printed-json", + "query-data-with-a-select-statement-and-return-second-precision-epoch-timestamps", + "query-data-with-flux", + "query-data-with-flux-and-the-data-explorer", + "query-data-with-influxql", + "query-data-with-invalid-authentication-credentials", + "query-data-with-sql", + "query-data-with-sql-and-the-data-explorer", + "query-data-with-the-influxdb-api", + "query-data-with-the-influxdb-javascript-client-library", + "query-data-within-time-boundaries", + "query-data-without-time-boundaries", + "query-downsampled-usage-data-for-a-different-influxdb-cloud-organization", + "query-downsampled-usage-data-for-your-influxdb-cloud-organization", + "query-engine-internals", + "query-example", + "query-examples", + "query-field-keys-from-an-influxdb-bucket", + "query-field-keys-from-an-influxdb-measurement", + "query-fields-and-tags", + "query-fields-based-on-tag-values", + "query-file-limit", + "query-for-cardinality", + "query-for-errors-by-severity-code", + "query-google-cloud-bigtable", + "query-guidelines", + "query-http-endpoint", + "query-improvements-in-data-explorer-and-notebooks", + "query-in-data-explorer", + "query-in-the-flux-repl", + "query-influxdb", + "query-influxdb-1x", + "query-influxdb-3-and-return-results-in-json-format", + "query-influxdb-3-and-return-results-in-table-format", + "query-influxdb-3-and-return-results-with-unix-nanosecond-timestamps", + "query-influxdb-3-using-credentials-from-the-connection-profile", + "query-influxdb-3-with-influxql", + "query-influxdb-3-with-sql", + "query-influxdb-and-append-query-profile-data-to-results", + "query-influxdb-and-return-annotated-csv", + "query-influxdb-cloud-dedicated", + "query-influxdb-cloud-or-2x-remotely", + "query-influxdb-cloud-serverless", + "query-influxdb-clustered", + "query-influxdb-using-the-bucket-id", + "query-influxdb-using-the-bucket-name", + "query-influxdb-with-a-flux-file", + "query-influxdb-with-a-flux-string", + "query-influxdb-with-grafana", + "query-influxdb-with-superset", + "query-initial-memory-bytes", + "query-initial-memory-bytes--0", + "query-language-differences", + "query-languages", + "query-life-cycle", + "query-line-protocol-from-a-socket-connection", + "query-log-enabled", + "query-log-enabled--true", + "query-log-path", + "query-log-size", + "query-logs", + "query-management", + "query-management-settings", + "query-max-memory-bytes", + "query-max-memory-bytes--0", + "query-mem_used-and-mem_total-fields", + "query-memory-bytes", + "query-memory-usage-percentage", + "query-multiple-fields", + "query-notification-events-from-the-last-hour", + "query-number-of-bytes-in-requests-to-the-apiv2write-endpoint", + "query-number-of-bytes-returned-from-the-apiv2query-endpoint", + "query-one-day-of-data-data-from-a-week-ago", + "query-one-day-of-data-from-a-week-ago", + "query-only-the-data-you-need", + "query-package", + "query-parameters", + "query-parameters-1", + "query-parameters-vs-json-body", + "query-partition-information-from-system-tables", + "query-performance", + "query-plan", + "query-plan-diagram", + "query-plans", + "query-points-based-on-field-values", + "query-pressure-data-from-a-specific-sensor", + "query-queue-size", + "query-queue-size--0", + "query-raw-data-from-csv-file", + "query-raw-usage-data-for-your-influxdb-cloud-organization", + "query-remote-influxdb-data-sources", + "query-representation", + "query-request-bytes", + "query-request-count", + "query-response-bytes", + "query-results", + "query-results-1", + "query-routing", + "query-rows-based-on-aggregate-values", + "query-sample-data", + "query-series-cardinality-for-a-specific-tag", + "query-series-cardinality-in-a-bucket", + "query-series-cardinality-in-a-measurement", + "query-specific-columns-from-a-system-table", + "query-specific-columns-from-the-distinct_caches-system-table", + "query-specific-columns-from-the-last_caches-system-table", + "query-specific-fields-and-tags", + "query-specific-fields-from-influxdb", + "query-specific-fields-in-a-measurement-from-influxdb", + "query-specific-fields-in-a-measurement-from-logqlqryn", + "query-sql-data", + "query-stats-enabled", + "query-stats-enabled--false", + "query-string-authentication", + "query-string-parameters", + "query-string-parameters-1", + "query-string-parameters-2", + "query-system-data", + "query-system-information", + "query-system-tables", + "query-tag-keys-from-an-influxdb-measurement", + "query-tag-keys-in-an-influxdb-bucket", + "query-telemetry-data", + "query-the-example-data", + "query-the-flux-version", + "query-the-latest-memory-usage-from-each-host", + "query-the-query-count-for-influxdb-cloud-query-endpoints", + "query-the-test-data-from-your-database", + "query-the-v1-query-endpoint", + "query-tier", + "query-tier-cpumem", + "query-time-range", + "query-timeout", + "query-timeout--0s", + "query-token-metadata", + "query-trace-logging", + "query-unique-tag-values-from-an-influxdb-bucket", + "query-unique-tag-values-from-an-influxdb-measurement", + "query-using-basic-authentication", + "query-using-grpc-or-http", + "query-using-influxdb-3-explorer-beta", + "query-using-influxql", + "query-using-influxql-and-the-http-api", + "query-using-sql", + "query-using-sql-and-the-http-api", + "query-using-stored-credentials", + "query-using-the-api", + "query-using-the-bucket-id", + "query-using-the-bucket-name", + "query-using-the-cli-for-influxql", + "query-using-the-python-client", + "query-variable-example", + "query-with-absolute-time-boundaries", + "query-with-relative-time-boundaries", + "query-with-the-influxdb-api", + "query-with-the-influxdb-javascript-client-library", + "query-would-process-too-many-files-or-partitions", + "querydurationns", + "queryexecutor", + "queryfail", + "queryflux", + "querying-data", + "querying-data-1", + "querying-data-that-occur-after-now-with-a-group-by-time-clause", + "querying-future-data-with-a-group-by-time-clause", + "querying-system-tables-may-impact-overall-cluster-performance", + "querying-the-wrong-retention-policy", + "querying-time-ranges-after-now", + "queryok", + "queryreq", + "queryreqdurationns", + "queryrespbytes", + "questions", + "queuebytes", + "queuebytes-1", + "queued-repairs-are-not-being-processed", + "queuedepth", + "queuedepth-1", + "queueing-active", + "queueing-duration-seconds", + "queuetotalsize", + "quick-install", + "quick-start", + "quickly-switch-between-configurations", + "quickstart", + "quickstart-1", + "quickstart-10", + "quickstart-11", + "quickstart-12", + "quickstart-13", + "quickstart-14", + "quickstart-15", + "quickstart-16", + "quickstart-17", + "quickstart-18", + "quickstart-19", + "quickstart-2", + "quickstart-20", + "quickstart-21", + "quickstart-22", + "quickstart-23", + "quickstart-24", + "quickstart-3", + "quickstart-4", + "quickstart-5", + "quickstart-6", + "quickstart-7", + "quickstart-8", + "quickstart-9", + "quiet", + "quit", + "quix-brand-icons", + "quix-downsample-pipeline", + "quota-and-limit-errors", + "quotes", + "quoting", + "quoting-examples", + "quoting-special-characters-and-additional-naming-guidelines", + "quoting-template-variables-in-influxql", + "qxip-package", + "r", + "rabbitmq", + "radians", + "radius", + "raindrops", + "random", + "random-numbers-sample-data", + "range", + "rank", + "ranking-functions", + "ras", + "rate", + "rate-limiting", + "rate-limits-with-influxdb-cloud", + "rate-of-change-between-subsequent-values", + "ravendb", + "raw", + "raw-data", + "react-tabs-0", + "react-tabs-1", + "react-tabs-10", + "react-tabs-100", + "react-tabs-1000", + "react-tabs-1001", + "react-tabs-1002", + "react-tabs-1003", + "react-tabs-1004", + "react-tabs-1005", + "react-tabs-1006", + "react-tabs-1007", + "react-tabs-1008", + "react-tabs-1009", + "react-tabs-101", + "react-tabs-1010", + "react-tabs-1011", + "react-tabs-1012", + "react-tabs-1013", + "react-tabs-1014", + "react-tabs-1015", + "react-tabs-1016", + "react-tabs-1017", + "react-tabs-1018", + "react-tabs-1019", + "react-tabs-102", + "react-tabs-1020", + "react-tabs-1021", + "react-tabs-1022", + "react-tabs-1023", + "react-tabs-1024", + "react-tabs-1025", + "react-tabs-1026", + "react-tabs-1027", + "react-tabs-1028", + "react-tabs-1029", + "react-tabs-103", + "react-tabs-1030", + "react-tabs-1031", + "react-tabs-1032", + "react-tabs-1033", + "react-tabs-1034", + "react-tabs-1035", + "react-tabs-1036", + "react-tabs-1037", + "react-tabs-1038", + "react-tabs-1039", + "react-tabs-104", + "react-tabs-1040", + "react-tabs-1041", + "react-tabs-1042", + "react-tabs-1043", + "react-tabs-1044", + "react-tabs-1045", + "react-tabs-1046", + "react-tabs-1047", + "react-tabs-1048", + "react-tabs-1049", + "react-tabs-105", + "react-tabs-1050", + "react-tabs-1051", + "react-tabs-1052", + "react-tabs-1053", + "react-tabs-1054", + "react-tabs-1055", + "react-tabs-1056", + "react-tabs-1057", + "react-tabs-1058", + "react-tabs-1059", + "react-tabs-106", + "react-tabs-1060", + "react-tabs-1061", + "react-tabs-1062", + "react-tabs-1063", + "react-tabs-1064", + "react-tabs-1065", + "react-tabs-1066", + "react-tabs-1067", + "react-tabs-1068", + "react-tabs-1069", + "react-tabs-107", + "react-tabs-1070", + "react-tabs-1071", + "react-tabs-1072", + "react-tabs-1073", + "react-tabs-1074", + "react-tabs-1075", + "react-tabs-1076", + "react-tabs-1077", + "react-tabs-1078", + "react-tabs-1079", + "react-tabs-108", + "react-tabs-1080", + "react-tabs-1081", + "react-tabs-1082", + "react-tabs-1083", + "react-tabs-1084", + "react-tabs-1085", + "react-tabs-1086", + "react-tabs-1087", + "react-tabs-1088", + "react-tabs-1089", + "react-tabs-109", + "react-tabs-1090", + "react-tabs-1091", + "react-tabs-1092", + "react-tabs-1093", + "react-tabs-1094", + "react-tabs-1095", + "react-tabs-1096", + "react-tabs-1097", + "react-tabs-1098", + "react-tabs-1099", + "react-tabs-11", + "react-tabs-110", + "react-tabs-1100", + "react-tabs-1101", + "react-tabs-1102", + "react-tabs-1103", + "react-tabs-1104", + "react-tabs-1105", + "react-tabs-1106", + "react-tabs-1107", + "react-tabs-1108", + "react-tabs-1109", + "react-tabs-111", + "react-tabs-1110", + "react-tabs-1111", + "react-tabs-1112", + "react-tabs-1113", + "react-tabs-1114", + "react-tabs-1115", + "react-tabs-1116", + "react-tabs-1117", + "react-tabs-1118", + "react-tabs-1119", + "react-tabs-112", + "react-tabs-1120", + "react-tabs-1121", + "react-tabs-1122", + "react-tabs-1123", + "react-tabs-1124", + "react-tabs-1125", + "react-tabs-1126", + "react-tabs-1127", + "react-tabs-1128", + "react-tabs-1129", + "react-tabs-113", + "react-tabs-1130", + "react-tabs-1131", + "react-tabs-1132", + "react-tabs-1133", + "react-tabs-1134", + "react-tabs-1135", + "react-tabs-1136", + "react-tabs-1137", + "react-tabs-1138", + "react-tabs-1139", + "react-tabs-114", + "react-tabs-1140", + "react-tabs-1141", + "react-tabs-1142", + "react-tabs-1143", + "react-tabs-1144", + "react-tabs-1145", + "react-tabs-1146", + "react-tabs-1147", + "react-tabs-1148", + "react-tabs-1149", + "react-tabs-115", + "react-tabs-1150", + "react-tabs-1151", + "react-tabs-1152", + "react-tabs-1153", + "react-tabs-1154", + "react-tabs-1155", + "react-tabs-1156", + "react-tabs-1157", + "react-tabs-1158", + "react-tabs-1159", + "react-tabs-116", + "react-tabs-1160", + "react-tabs-1161", + "react-tabs-1162", + "react-tabs-1163", + "react-tabs-1164", + "react-tabs-1165", + "react-tabs-1166", + "react-tabs-1167", + "react-tabs-1168", + "react-tabs-1169", + "react-tabs-117", + "react-tabs-1170", + "react-tabs-1171", + "react-tabs-1172", + "react-tabs-1173", + "react-tabs-1174", + "react-tabs-1175", + "react-tabs-1176", + "react-tabs-1177", + "react-tabs-1178", + "react-tabs-1179", + "react-tabs-118", + "react-tabs-1180", + "react-tabs-1181", + "react-tabs-1182", + "react-tabs-1183", + "react-tabs-1184", + "react-tabs-1185", + "react-tabs-1186", + "react-tabs-1187", + "react-tabs-1188", + "react-tabs-1189", + "react-tabs-119", + "react-tabs-1190", + "react-tabs-1191", + "react-tabs-1192", + "react-tabs-1193", + "react-tabs-1194", + "react-tabs-1195", + "react-tabs-1196", + "react-tabs-1197", + "react-tabs-1198", + "react-tabs-1199", + "react-tabs-12", + "react-tabs-120", + "react-tabs-1200", + "react-tabs-1201", + "react-tabs-1202", + "react-tabs-1203", + "react-tabs-1204", + "react-tabs-1205", + "react-tabs-1206", + "react-tabs-1207", + "react-tabs-1208", + "react-tabs-1209", + "react-tabs-121", + "react-tabs-1210", + "react-tabs-1211", + "react-tabs-1212", + "react-tabs-1213", + "react-tabs-1214", + "react-tabs-1215", + "react-tabs-1216", + "react-tabs-1217", + "react-tabs-1218", + "react-tabs-1219", + "react-tabs-122", + "react-tabs-1220", + "react-tabs-1221", + "react-tabs-1222", + "react-tabs-1223", + "react-tabs-1224", + "react-tabs-1225", + "react-tabs-1226", + "react-tabs-1227", + "react-tabs-1228", + "react-tabs-1229", + "react-tabs-123", + "react-tabs-1230", + "react-tabs-1231", + "react-tabs-1232", + "react-tabs-1233", + "react-tabs-1234", + "react-tabs-1235", + "react-tabs-1236", + "react-tabs-1237", + "react-tabs-1238", + "react-tabs-1239", + "react-tabs-124", + "react-tabs-1240", + "react-tabs-1241", + "react-tabs-1242", + "react-tabs-1243", + "react-tabs-1244", + "react-tabs-1245", + "react-tabs-1246", + "react-tabs-1247", + "react-tabs-1248", + "react-tabs-1249", + "react-tabs-125", + "react-tabs-1250", + "react-tabs-1251", + "react-tabs-1252", + "react-tabs-1253", + "react-tabs-1254", + "react-tabs-1255", + "react-tabs-1256", + "react-tabs-1257", + "react-tabs-1258", + "react-tabs-1259", + "react-tabs-126", + "react-tabs-1260", + "react-tabs-1261", + "react-tabs-1262", + "react-tabs-1263", + "react-tabs-1264", + "react-tabs-1265", + "react-tabs-1266", + "react-tabs-1267", + "react-tabs-1268", + "react-tabs-1269", + "react-tabs-127", + "react-tabs-1270", + "react-tabs-1271", + "react-tabs-1272", + "react-tabs-1273", + "react-tabs-1274", + "react-tabs-1275", + "react-tabs-1276", + "react-tabs-1277", + "react-tabs-1278", + "react-tabs-1279", + "react-tabs-128", + "react-tabs-1280", + "react-tabs-1281", + "react-tabs-1282", + "react-tabs-1283", + "react-tabs-1284", + "react-tabs-1285", + "react-tabs-1286", + "react-tabs-1287", + "react-tabs-1288", + "react-tabs-1289", + "react-tabs-129", + "react-tabs-1290", + "react-tabs-1291", + "react-tabs-1292", + "react-tabs-1293", + "react-tabs-1294", + "react-tabs-1295", + "react-tabs-1296", + "react-tabs-1297", + "react-tabs-1298", + "react-tabs-1299", + "react-tabs-13", + "react-tabs-130", + "react-tabs-1300", + "react-tabs-1301", + "react-tabs-1302", + "react-tabs-1303", + "react-tabs-1304", + "react-tabs-1305", + "react-tabs-1306", + "react-tabs-1307", + "react-tabs-1308", + "react-tabs-1309", + "react-tabs-131", + "react-tabs-1310", + "react-tabs-1311", + "react-tabs-1312", + "react-tabs-1313", + "react-tabs-1314", + "react-tabs-1315", + "react-tabs-1316", + "react-tabs-1317", + "react-tabs-1318", + "react-tabs-1319", + "react-tabs-132", + "react-tabs-1320", + "react-tabs-1321", + "react-tabs-1322", + "react-tabs-1323", + "react-tabs-1324", + "react-tabs-1325", + "react-tabs-1326", + "react-tabs-1327", + "react-tabs-1328", + "react-tabs-1329", + "react-tabs-133", + "react-tabs-1330", + "react-tabs-1331", + "react-tabs-1332", + "react-tabs-1333", + "react-tabs-1334", + "react-tabs-1335", + "react-tabs-1336", + "react-tabs-1337", + "react-tabs-1338", + "react-tabs-1339", + "react-tabs-134", + "react-tabs-1340", + "react-tabs-1341", + "react-tabs-1342", + "react-tabs-1343", + "react-tabs-1344", + "react-tabs-1345", + "react-tabs-1346", + "react-tabs-1347", + "react-tabs-1348", + "react-tabs-1349", + "react-tabs-135", + "react-tabs-1350", + "react-tabs-1351", + "react-tabs-1352", + "react-tabs-1353", + "react-tabs-1354", + "react-tabs-1355", + "react-tabs-1356", + "react-tabs-1357", + "react-tabs-1358", + "react-tabs-1359", + "react-tabs-136", + "react-tabs-1360", + "react-tabs-1361", + "react-tabs-1362", + "react-tabs-1363", + "react-tabs-1364", + "react-tabs-1365", + "react-tabs-1366", + "react-tabs-1367", + "react-tabs-1368", + "react-tabs-1369", + "react-tabs-137", + "react-tabs-1370", + "react-tabs-1371", + "react-tabs-1372", + "react-tabs-1373", + "react-tabs-1374", + "react-tabs-1375", + "react-tabs-1376", + "react-tabs-1377", + "react-tabs-1378", + "react-tabs-1379", + "react-tabs-138", + "react-tabs-1380", + "react-tabs-1381", + "react-tabs-1382", + "react-tabs-1383", + "react-tabs-1384", + "react-tabs-1385", + "react-tabs-1386", + "react-tabs-1387", + "react-tabs-1388", + "react-tabs-1389", + "react-tabs-139", + "react-tabs-1390", + "react-tabs-1391", + "react-tabs-1392", + "react-tabs-1393", + "react-tabs-1394", + "react-tabs-1395", + "react-tabs-1396", + "react-tabs-1397", + "react-tabs-1398", + "react-tabs-1399", + "react-tabs-14", + "react-tabs-140", + "react-tabs-1400", + "react-tabs-1401", + "react-tabs-1402", + "react-tabs-1403", + "react-tabs-1404", + "react-tabs-1405", + "react-tabs-1406", + "react-tabs-1407", + "react-tabs-1408", + "react-tabs-1409", + "react-tabs-141", + "react-tabs-1410", + "react-tabs-1411", + "react-tabs-1412", + "react-tabs-1413", + "react-tabs-1414", + "react-tabs-1415", + "react-tabs-1416", + "react-tabs-1417", + "react-tabs-1418", + "react-tabs-1419", + "react-tabs-142", + "react-tabs-1420", + "react-tabs-1421", + "react-tabs-1422", + "react-tabs-1423", + "react-tabs-1424", + "react-tabs-1425", + "react-tabs-1426", + "react-tabs-1427", + "react-tabs-1428", + "react-tabs-1429", + "react-tabs-143", + "react-tabs-1430", + "react-tabs-1431", + "react-tabs-1432", + "react-tabs-1433", + "react-tabs-1434", + "react-tabs-1435", + "react-tabs-1436", + "react-tabs-1437", + "react-tabs-1438", + "react-tabs-1439", + "react-tabs-144", + "react-tabs-1440", + "react-tabs-1441", + "react-tabs-1442", + "react-tabs-1443", + "react-tabs-1444", + "react-tabs-1445", + "react-tabs-1446", + "react-tabs-1447", + "react-tabs-1448", + "react-tabs-1449", + "react-tabs-145", + "react-tabs-1450", + "react-tabs-1451", + "react-tabs-1452", + "react-tabs-1453", + "react-tabs-1454", + "react-tabs-1455", + "react-tabs-1456", + "react-tabs-1457", + "react-tabs-1458", + "react-tabs-1459", + "react-tabs-146", + "react-tabs-1460", + "react-tabs-1461", + "react-tabs-1462", + "react-tabs-1463", + "react-tabs-1464", + "react-tabs-1465", + "react-tabs-1466", + "react-tabs-1467", + "react-tabs-1468", + "react-tabs-1469", + "react-tabs-147", + "react-tabs-1470", + "react-tabs-1471", + "react-tabs-1472", + "react-tabs-1473", + "react-tabs-1474", + "react-tabs-1475", + "react-tabs-1476", + "react-tabs-1477", + "react-tabs-1478", + "react-tabs-1479", + "react-tabs-148", + "react-tabs-1480", + "react-tabs-1481", + "react-tabs-1482", + "react-tabs-1483", + "react-tabs-1484", + "react-tabs-1485", + "react-tabs-1486", + "react-tabs-1487", + "react-tabs-1488", + "react-tabs-1489", + "react-tabs-149", + "react-tabs-1490", + "react-tabs-1491", + "react-tabs-1492", + "react-tabs-1493", + "react-tabs-1494", + "react-tabs-1495", + "react-tabs-1496", + "react-tabs-1497", + "react-tabs-1498", + "react-tabs-1499", + "react-tabs-15", + "react-tabs-150", + "react-tabs-1500", + "react-tabs-1501", + "react-tabs-1502", + "react-tabs-1503", + "react-tabs-1504", + "react-tabs-1505", + "react-tabs-1506", + "react-tabs-1507", + "react-tabs-1508", + "react-tabs-1509", + "react-tabs-151", + "react-tabs-1510", + "react-tabs-1511", + "react-tabs-1512", + "react-tabs-1513", + "react-tabs-1514", + "react-tabs-1515", + "react-tabs-1516", + "react-tabs-1517", + "react-tabs-1518", + "react-tabs-1519", + "react-tabs-152", + "react-tabs-1520", + "react-tabs-1521", + "react-tabs-1522", + "react-tabs-1523", + "react-tabs-1524", + "react-tabs-1525", + "react-tabs-1526", + "react-tabs-1527", + "react-tabs-1528", + "react-tabs-1529", + "react-tabs-153", + "react-tabs-1530", + "react-tabs-1531", + "react-tabs-1532", + "react-tabs-1533", + "react-tabs-1534", + "react-tabs-1535", + "react-tabs-1536", + "react-tabs-1537", + "react-tabs-1538", + "react-tabs-1539", + "react-tabs-154", + "react-tabs-1540", + "react-tabs-1541", + "react-tabs-1542", + "react-tabs-1543", + "react-tabs-1544", + "react-tabs-1545", + "react-tabs-1546", + "react-tabs-1547", + "react-tabs-1548", + "react-tabs-1549", + "react-tabs-155", + "react-tabs-1550", + "react-tabs-1551", + "react-tabs-1552", + "react-tabs-1553", + "react-tabs-1554", + "react-tabs-1555", + "react-tabs-1556", + "react-tabs-1557", + "react-tabs-1558", + "react-tabs-1559", + "react-tabs-156", + "react-tabs-1560", + "react-tabs-1561", + "react-tabs-1562", + "react-tabs-1563", + "react-tabs-1564", + "react-tabs-1565", + "react-tabs-1566", + "react-tabs-1567", + "react-tabs-1568", + "react-tabs-1569", + "react-tabs-157", + "react-tabs-1570", + "react-tabs-1571", + "react-tabs-1572", + "react-tabs-1573", + "react-tabs-1574", + "react-tabs-1575", + "react-tabs-1576", + "react-tabs-1577", + "react-tabs-1578", + "react-tabs-1579", + "react-tabs-158", + "react-tabs-1580", + "react-tabs-1581", + "react-tabs-1582", + "react-tabs-1583", + "react-tabs-1584", + "react-tabs-1585", + "react-tabs-1586", + "react-tabs-1587", + "react-tabs-1588", + "react-tabs-1589", + "react-tabs-159", + "react-tabs-1590", + "react-tabs-1591", + "react-tabs-1592", + "react-tabs-1593", + "react-tabs-1594", + "react-tabs-1595", + "react-tabs-1596", + "react-tabs-1597", + "react-tabs-1598", + "react-tabs-1599", + "react-tabs-16", + "react-tabs-160", + "react-tabs-1600", + "react-tabs-1601", + "react-tabs-1602", + "react-tabs-1603", + "react-tabs-1604", + "react-tabs-1605", + "react-tabs-1606", + "react-tabs-1607", + "react-tabs-1608", + "react-tabs-1609", + "react-tabs-161", + "react-tabs-1610", + "react-tabs-1611", + "react-tabs-1612", + "react-tabs-1613", + "react-tabs-1614", + "react-tabs-1615", + "react-tabs-1616", + "react-tabs-1617", + "react-tabs-1618", + "react-tabs-1619", + "react-tabs-162", + "react-tabs-1620", + "react-tabs-1621", + "react-tabs-1622", + "react-tabs-1623", + "react-tabs-1624", + "react-tabs-1625", + "react-tabs-1626", + "react-tabs-1627", + "react-tabs-1628", + "react-tabs-1629", + "react-tabs-163", + "react-tabs-1630", + "react-tabs-1631", + "react-tabs-1632", + "react-tabs-1633", + "react-tabs-1634", + "react-tabs-1635", + "react-tabs-1636", + "react-tabs-1637", + "react-tabs-1638", + "react-tabs-1639", + "react-tabs-164", + "react-tabs-1640", + "react-tabs-1641", + "react-tabs-1642", + "react-tabs-1643", + "react-tabs-1644", + "react-tabs-1645", + "react-tabs-1646", + "react-tabs-1647", + "react-tabs-1648", + "react-tabs-1649", + "react-tabs-165", + "react-tabs-1650", + "react-tabs-1651", + "react-tabs-1652", + "react-tabs-1653", + "react-tabs-1654", + "react-tabs-1655", + "react-tabs-1656", + "react-tabs-1657", + "react-tabs-1658", + "react-tabs-1659", + "react-tabs-166", + "react-tabs-1660", + "react-tabs-1661", + "react-tabs-1662", + "react-tabs-1663", + "react-tabs-1664", + "react-tabs-1665", + "react-tabs-1666", + "react-tabs-1667", + "react-tabs-1668", + "react-tabs-1669", + "react-tabs-167", + "react-tabs-1670", + "react-tabs-1671", + "react-tabs-1672", + "react-tabs-1673", + "react-tabs-1674", + "react-tabs-1675", + "react-tabs-1676", + "react-tabs-1677", + "react-tabs-1678", + "react-tabs-1679", + "react-tabs-168", + "react-tabs-1680", + "react-tabs-1681", + "react-tabs-1682", + "react-tabs-1683", + "react-tabs-1684", + "react-tabs-1685", + "react-tabs-1686", + "react-tabs-1687", + "react-tabs-1688", + "react-tabs-1689", + "react-tabs-169", + "react-tabs-1690", + "react-tabs-1691", + "react-tabs-1692", + "react-tabs-1693", + "react-tabs-1694", + "react-tabs-1695", + "react-tabs-1696", + "react-tabs-1697", + "react-tabs-1698", + "react-tabs-1699", + "react-tabs-17", + "react-tabs-170", + "react-tabs-1700", + "react-tabs-1701", + "react-tabs-1702", + "react-tabs-1703", + "react-tabs-1704", + "react-tabs-1705", + "react-tabs-1706", + "react-tabs-1707", + "react-tabs-1708", + "react-tabs-1709", + "react-tabs-171", + "react-tabs-1710", + "react-tabs-1711", + "react-tabs-1712", + "react-tabs-1713", + "react-tabs-1714", + "react-tabs-1715", + "react-tabs-1716", + "react-tabs-1717", + "react-tabs-1718", + "react-tabs-1719", + "react-tabs-172", + "react-tabs-1720", + "react-tabs-1721", + "react-tabs-1722", + "react-tabs-1723", + "react-tabs-1724", + "react-tabs-1725", + "react-tabs-1726", + "react-tabs-1727", + "react-tabs-1728", + "react-tabs-1729", + "react-tabs-173", + "react-tabs-1730", + "react-tabs-1731", + "react-tabs-1732", + "react-tabs-1733", + "react-tabs-1734", + "react-tabs-1735", + "react-tabs-1736", + "react-tabs-1737", + "react-tabs-1738", + "react-tabs-1739", + "react-tabs-174", + "react-tabs-1740", + "react-tabs-1741", + "react-tabs-1742", + "react-tabs-1743", + "react-tabs-1744", + "react-tabs-1745", + "react-tabs-1746", + "react-tabs-1747", + "react-tabs-1748", + "react-tabs-1749", + "react-tabs-175", + "react-tabs-1750", + "react-tabs-1751", + "react-tabs-1752", + "react-tabs-1753", + "react-tabs-1754", + "react-tabs-1755", + "react-tabs-1756", + "react-tabs-1757", + "react-tabs-1758", + "react-tabs-1759", + "react-tabs-176", + "react-tabs-1760", + "react-tabs-1761", + "react-tabs-1762", + "react-tabs-1763", + "react-tabs-1764", + "react-tabs-1765", + "react-tabs-1766", + "react-tabs-1767", + "react-tabs-1768", + "react-tabs-1769", + "react-tabs-177", + "react-tabs-1770", + "react-tabs-1771", + "react-tabs-1772", + "react-tabs-1773", + "react-tabs-1774", + "react-tabs-1775", + "react-tabs-1776", + "react-tabs-1777", + "react-tabs-1778", + "react-tabs-1779", + "react-tabs-178", + "react-tabs-1780", + "react-tabs-1781", + "react-tabs-1782", + "react-tabs-1783", + "react-tabs-1784", + "react-tabs-1785", + "react-tabs-1786", + "react-tabs-1787", + "react-tabs-1788", + "react-tabs-1789", + "react-tabs-179", + "react-tabs-1790", + "react-tabs-1791", + "react-tabs-1792", + "react-tabs-1793", + "react-tabs-1794", + "react-tabs-1795", + "react-tabs-1796", + "react-tabs-1797", + "react-tabs-1798", + "react-tabs-1799", + "react-tabs-18", + "react-tabs-180", + "react-tabs-1800", + "react-tabs-1801", + "react-tabs-1802", + "react-tabs-1803", + "react-tabs-1804", + "react-tabs-1805", + "react-tabs-1806", + "react-tabs-1807", + "react-tabs-1808", + "react-tabs-1809", + "react-tabs-181", + "react-tabs-1810", + "react-tabs-1811", + "react-tabs-1812", + "react-tabs-1813", + "react-tabs-1814", + "react-tabs-1815", + "react-tabs-1816", + "react-tabs-1817", + "react-tabs-1818", + "react-tabs-1819", + "react-tabs-182", + "react-tabs-1820", + "react-tabs-1821", + "react-tabs-1822", + "react-tabs-1823", + "react-tabs-1824", + "react-tabs-1825", + "react-tabs-1826", + "react-tabs-1827", + "react-tabs-1828", + "react-tabs-1829", + "react-tabs-183", + "react-tabs-1830", + "react-tabs-1831", + "react-tabs-1832", + "react-tabs-1833", + "react-tabs-1834", + "react-tabs-1835", + "react-tabs-1836", + "react-tabs-1837", + "react-tabs-1838", + "react-tabs-1839", + "react-tabs-184", + "react-tabs-1840", + "react-tabs-1841", + "react-tabs-1842", + "react-tabs-1843", + "react-tabs-1844", + "react-tabs-1845", + "react-tabs-1846", + "react-tabs-1847", + "react-tabs-1848", + "react-tabs-1849", + "react-tabs-185", + "react-tabs-1850", + "react-tabs-1851", + "react-tabs-1852", + "react-tabs-1853", + "react-tabs-1854", + "react-tabs-1855", + "react-tabs-1856", + "react-tabs-1857", + "react-tabs-1858", + "react-tabs-1859", + "react-tabs-186", + "react-tabs-1860", + "react-tabs-1861", + "react-tabs-1862", + "react-tabs-1863", + "react-tabs-1864", + "react-tabs-1865", + "react-tabs-1866", + "react-tabs-1867", + "react-tabs-1868", + "react-tabs-1869", + "react-tabs-187", + "react-tabs-1870", + "react-tabs-1871", + "react-tabs-1872", + "react-tabs-1873", + "react-tabs-1874", + "react-tabs-1875", + "react-tabs-1876", + "react-tabs-1877", + "react-tabs-1878", + "react-tabs-1879", + "react-tabs-188", + "react-tabs-1880", + "react-tabs-1881", + "react-tabs-1882", + "react-tabs-1883", + "react-tabs-1884", + "react-tabs-1885", + "react-tabs-1886", + "react-tabs-1887", + "react-tabs-1888", + "react-tabs-1889", + "react-tabs-189", + "react-tabs-1890", + "react-tabs-1891", + "react-tabs-1892", + "react-tabs-1893", + "react-tabs-1894", + "react-tabs-1895", + "react-tabs-1896", + "react-tabs-1897", + "react-tabs-1898", + "react-tabs-1899", + "react-tabs-19", + "react-tabs-190", + "react-tabs-1900", + "react-tabs-1901", + "react-tabs-1902", + "react-tabs-1903", + "react-tabs-1904", + "react-tabs-1905", + "react-tabs-1906", + "react-tabs-1907", + "react-tabs-1908", + "react-tabs-1909", + "react-tabs-191", + "react-tabs-1910", + "react-tabs-1911", + "react-tabs-1912", + "react-tabs-1913", + "react-tabs-1914", + "react-tabs-1915", + "react-tabs-1916", + "react-tabs-1917", + "react-tabs-1918", + "react-tabs-1919", + "react-tabs-192", + "react-tabs-1920", + "react-tabs-1921", + "react-tabs-1922", + "react-tabs-1923", + "react-tabs-1924", + "react-tabs-1925", + "react-tabs-1926", + "react-tabs-1927", + "react-tabs-1928", + "react-tabs-1929", + "react-tabs-193", + "react-tabs-1930", + "react-tabs-1931", + "react-tabs-1932", + "react-tabs-1933", + "react-tabs-1934", + "react-tabs-1935", + "react-tabs-1936", + "react-tabs-1937", + "react-tabs-1938", + "react-tabs-1939", + "react-tabs-194", + "react-tabs-1940", + "react-tabs-1941", + "react-tabs-1942", + "react-tabs-1943", + "react-tabs-1944", + "react-tabs-1945", + "react-tabs-1946", + "react-tabs-1947", + "react-tabs-1948", + "react-tabs-1949", + "react-tabs-195", + "react-tabs-1950", + "react-tabs-1951", + "react-tabs-1952", + "react-tabs-1953", + "react-tabs-1954", + "react-tabs-1955", + "react-tabs-1956", + "react-tabs-1957", + "react-tabs-1958", + "react-tabs-1959", + "react-tabs-196", + "react-tabs-1960", + "react-tabs-1961", + "react-tabs-1962", + "react-tabs-1963", + "react-tabs-1964", + "react-tabs-1965", + "react-tabs-1966", + "react-tabs-1967", + "react-tabs-1968", + "react-tabs-1969", + "react-tabs-197", + "react-tabs-1970", + "react-tabs-1971", + "react-tabs-1972", + "react-tabs-1973", + "react-tabs-1974", + "react-tabs-1975", + "react-tabs-1976", + "react-tabs-1977", + "react-tabs-1978", + "react-tabs-1979", + "react-tabs-198", + "react-tabs-1980", + "react-tabs-1981", + "react-tabs-1982", + "react-tabs-1983", + "react-tabs-1984", + "react-tabs-1985", + "react-tabs-1986", + "react-tabs-1987", + "react-tabs-1988", + "react-tabs-1989", + "react-tabs-199", + "react-tabs-1990", + "react-tabs-1991", + "react-tabs-1992", + "react-tabs-1993", + "react-tabs-1994", + "react-tabs-1995", + "react-tabs-1996", + "react-tabs-1997", + "react-tabs-1998", + "react-tabs-1999", + "react-tabs-2", + "react-tabs-20", + "react-tabs-200", + "react-tabs-2000", + "react-tabs-2001", + "react-tabs-2002", + "react-tabs-2003", + "react-tabs-2004", + "react-tabs-2005", + "react-tabs-2006", + "react-tabs-2007", + "react-tabs-2008", + "react-tabs-2009", + "react-tabs-201", + "react-tabs-202", + "react-tabs-203", + "react-tabs-204", + "react-tabs-205", + "react-tabs-206", + "react-tabs-207", + "react-tabs-208", + "react-tabs-209", + "react-tabs-21", + "react-tabs-210", + "react-tabs-211", + "react-tabs-212", + "react-tabs-213", + "react-tabs-214", + "react-tabs-215", + "react-tabs-216", + "react-tabs-217", + "react-tabs-218", + "react-tabs-219", + "react-tabs-22", + "react-tabs-220", + "react-tabs-221", + "react-tabs-222", + "react-tabs-223", + "react-tabs-224", + "react-tabs-225", + "react-tabs-226", + "react-tabs-227", + "react-tabs-228", + "react-tabs-229", + "react-tabs-23", + "react-tabs-230", + "react-tabs-231", + "react-tabs-232", + "react-tabs-233", + "react-tabs-234", + "react-tabs-235", + "react-tabs-236", + "react-tabs-237", + "react-tabs-238", + "react-tabs-239", + "react-tabs-24", + "react-tabs-240", + "react-tabs-241", + "react-tabs-242", + "react-tabs-243", + "react-tabs-244", + "react-tabs-245", + "react-tabs-246", + "react-tabs-247", + "react-tabs-248", + "react-tabs-249", + "react-tabs-25", + "react-tabs-250", + "react-tabs-251", + "react-tabs-252", + "react-tabs-253", + "react-tabs-254", + "react-tabs-255", + "react-tabs-256", + "react-tabs-257", + "react-tabs-258", + "react-tabs-259", + "react-tabs-26", + "react-tabs-260", + "react-tabs-261", + "react-tabs-262", + "react-tabs-263", + "react-tabs-264", + "react-tabs-265", + "react-tabs-266", + "react-tabs-267", + "react-tabs-268", + "react-tabs-269", + "react-tabs-27", + "react-tabs-270", + "react-tabs-271", + "react-tabs-272", + "react-tabs-273", + "react-tabs-274", + "react-tabs-275", + "react-tabs-276", + "react-tabs-277", + "react-tabs-278", + "react-tabs-279", + "react-tabs-28", + "react-tabs-280", + "react-tabs-281", + "react-tabs-282", + "react-tabs-283", + "react-tabs-284", + "react-tabs-285", + "react-tabs-286", + "react-tabs-287", + "react-tabs-288", + "react-tabs-289", + "react-tabs-29", + "react-tabs-290", + "react-tabs-291", + "react-tabs-292", + "react-tabs-293", + "react-tabs-294", + "react-tabs-295", + "react-tabs-296", + "react-tabs-297", + "react-tabs-298", + "react-tabs-299", + "react-tabs-3", + "react-tabs-30", + "react-tabs-300", + "react-tabs-301", + "react-tabs-302", + "react-tabs-303", + "react-tabs-304", + "react-tabs-305", + "react-tabs-306", + "react-tabs-307", + "react-tabs-308", + "react-tabs-309", + "react-tabs-31", + "react-tabs-310", + "react-tabs-311", + "react-tabs-312", + "react-tabs-313", + "react-tabs-314", + "react-tabs-315", + "react-tabs-316", + "react-tabs-317", + "react-tabs-318", + "react-tabs-319", + "react-tabs-32", + "react-tabs-320", + "react-tabs-321", + "react-tabs-322", + "react-tabs-323", + "react-tabs-324", + "react-tabs-325", + "react-tabs-326", + "react-tabs-327", + "react-tabs-328", + "react-tabs-329", + "react-tabs-33", + "react-tabs-330", + "react-tabs-331", + "react-tabs-332", + "react-tabs-333", + "react-tabs-334", + "react-tabs-335", + "react-tabs-336", + "react-tabs-337", + "react-tabs-338", + "react-tabs-339", + "react-tabs-34", + "react-tabs-340", + "react-tabs-341", + "react-tabs-342", + "react-tabs-343", + "react-tabs-344", + "react-tabs-345", + "react-tabs-346", + "react-tabs-347", + "react-tabs-348", + "react-tabs-349", + "react-tabs-35", + "react-tabs-350", + "react-tabs-351", + "react-tabs-352", + "react-tabs-353", + "react-tabs-354", + "react-tabs-355", + "react-tabs-356", + "react-tabs-357", + "react-tabs-358", + "react-tabs-359", + "react-tabs-36", + "react-tabs-360", + "react-tabs-361", + "react-tabs-362", + "react-tabs-363", + "react-tabs-364", + "react-tabs-365", + "react-tabs-366", + "react-tabs-367", + "react-tabs-368", + "react-tabs-369", + "react-tabs-37", + "react-tabs-370", + "react-tabs-371", + "react-tabs-372", + "react-tabs-373", + "react-tabs-374", + "react-tabs-375", + "react-tabs-376", + "react-tabs-377", + "react-tabs-378", + "react-tabs-379", + "react-tabs-38", + "react-tabs-380", + "react-tabs-381", + "react-tabs-382", + "react-tabs-383", + "react-tabs-384", + "react-tabs-385", + "react-tabs-386", + "react-tabs-387", + "react-tabs-388", + "react-tabs-389", + "react-tabs-39", + "react-tabs-390", + "react-tabs-391", + "react-tabs-392", + "react-tabs-393", + "react-tabs-394", + "react-tabs-395", + "react-tabs-396", + "react-tabs-397", + "react-tabs-398", + "react-tabs-399", + "react-tabs-4", + "react-tabs-40", + "react-tabs-400", + "react-tabs-401", + "react-tabs-402", + "react-tabs-403", + "react-tabs-404", + "react-tabs-405", + "react-tabs-406", + "react-tabs-407", + "react-tabs-408", + "react-tabs-409", + "react-tabs-41", + "react-tabs-410", + "react-tabs-411", + "react-tabs-412", + "react-tabs-413", + "react-tabs-414", + "react-tabs-415", + "react-tabs-416", + "react-tabs-417", + "react-tabs-418", + "react-tabs-419", + "react-tabs-42", + "react-tabs-420", + "react-tabs-421", + "react-tabs-422", + "react-tabs-423", + "react-tabs-424", + "react-tabs-425", + "react-tabs-426", + "react-tabs-427", + "react-tabs-428", + "react-tabs-429", + "react-tabs-43", + "react-tabs-430", + "react-tabs-431", + "react-tabs-432", + "react-tabs-433", + "react-tabs-434", + "react-tabs-435", + "react-tabs-436", + "react-tabs-437", + "react-tabs-438", + "react-tabs-439", + "react-tabs-44", + "react-tabs-440", + "react-tabs-441", + "react-tabs-442", + "react-tabs-443", + "react-tabs-444", + "react-tabs-445", + "react-tabs-446", + "react-tabs-447", + "react-tabs-448", + "react-tabs-449", + "react-tabs-45", + "react-tabs-450", + "react-tabs-451", + "react-tabs-452", + "react-tabs-453", + "react-tabs-454", + "react-tabs-455", + "react-tabs-456", + "react-tabs-457", + "react-tabs-458", + "react-tabs-459", + "react-tabs-46", + "react-tabs-460", + "react-tabs-461", + "react-tabs-462", + "react-tabs-463", + "react-tabs-464", + "react-tabs-465", + "react-tabs-466", + "react-tabs-467", + "react-tabs-468", + "react-tabs-469", + "react-tabs-47", + "react-tabs-470", + "react-tabs-471", + "react-tabs-472", + "react-tabs-473", + "react-tabs-474", + "react-tabs-475", + "react-tabs-476", + "react-tabs-477", + "react-tabs-478", + "react-tabs-479", + "react-tabs-48", + "react-tabs-480", + "react-tabs-481", + "react-tabs-482", + "react-tabs-483", + "react-tabs-484", + "react-tabs-485", + "react-tabs-486", + "react-tabs-487", + "react-tabs-488", + "react-tabs-489", + "react-tabs-49", + "react-tabs-490", + "react-tabs-491", + "react-tabs-492", + "react-tabs-493", + "react-tabs-494", + "react-tabs-495", + "react-tabs-496", + "react-tabs-497", + "react-tabs-498", + "react-tabs-499", + "react-tabs-5", + "react-tabs-50", + "react-tabs-500", + "react-tabs-501", + "react-tabs-502", + "react-tabs-503", + "react-tabs-504", + "react-tabs-505", + "react-tabs-506", + "react-tabs-507", + "react-tabs-508", + "react-tabs-509", + "react-tabs-51", + "react-tabs-510", + "react-tabs-511", + "react-tabs-512", + "react-tabs-513", + "react-tabs-514", + "react-tabs-515", + "react-tabs-516", + "react-tabs-517", + "react-tabs-518", + "react-tabs-519", + "react-tabs-52", + "react-tabs-520", + "react-tabs-521", + "react-tabs-522", + "react-tabs-523", + "react-tabs-524", + "react-tabs-525", + "react-tabs-526", + "react-tabs-527", + "react-tabs-528", + "react-tabs-529", + "react-tabs-53", + "react-tabs-530", + "react-tabs-531", + "react-tabs-532", + "react-tabs-533", + "react-tabs-534", + "react-tabs-535", + "react-tabs-536", + "react-tabs-537", + "react-tabs-538", + "react-tabs-539", + "react-tabs-54", + "react-tabs-540", + "react-tabs-541", + "react-tabs-542", + "react-tabs-543", + "react-tabs-544", + "react-tabs-545", + "react-tabs-546", + "react-tabs-547", + "react-tabs-548", + "react-tabs-549", + "react-tabs-55", + "react-tabs-550", + "react-tabs-551", + "react-tabs-552", + "react-tabs-553", + "react-tabs-554", + "react-tabs-555", + "react-tabs-556", + "react-tabs-557", + "react-tabs-558", + "react-tabs-559", + "react-tabs-56", + "react-tabs-560", + "react-tabs-561", + "react-tabs-562", + "react-tabs-563", + "react-tabs-564", + "react-tabs-565", + "react-tabs-566", + "react-tabs-567", + "react-tabs-568", + "react-tabs-569", + "react-tabs-57", + "react-tabs-570", + "react-tabs-571", + "react-tabs-572", + "react-tabs-573", + "react-tabs-574", + "react-tabs-575", + "react-tabs-576", + "react-tabs-577", + "react-tabs-578", + "react-tabs-579", + "react-tabs-58", + "react-tabs-580", + "react-tabs-581", + "react-tabs-582", + "react-tabs-583", + "react-tabs-584", + "react-tabs-585", + "react-tabs-586", + "react-tabs-587", + "react-tabs-588", + "react-tabs-589", + "react-tabs-59", + "react-tabs-590", + "react-tabs-591", + "react-tabs-592", + "react-tabs-593", + "react-tabs-594", + "react-tabs-595", + "react-tabs-596", + "react-tabs-597", + "react-tabs-598", + "react-tabs-599", + "react-tabs-6", + "react-tabs-60", + "react-tabs-600", + "react-tabs-601", + "react-tabs-602", + "react-tabs-603", + "react-tabs-604", + "react-tabs-605", + "react-tabs-606", + "react-tabs-607", + "react-tabs-608", + "react-tabs-609", + "react-tabs-61", + "react-tabs-610", + "react-tabs-611", + "react-tabs-612", + "react-tabs-613", + "react-tabs-614", + "react-tabs-615", + "react-tabs-616", + "react-tabs-617", + "react-tabs-618", + "react-tabs-619", + "react-tabs-62", + "react-tabs-620", + "react-tabs-621", + "react-tabs-622", + "react-tabs-623", + "react-tabs-624", + "react-tabs-625", + "react-tabs-626", + "react-tabs-627", + "react-tabs-628", + "react-tabs-629", + "react-tabs-63", + "react-tabs-630", + "react-tabs-631", + "react-tabs-632", + "react-tabs-633", + "react-tabs-634", + "react-tabs-635", + "react-tabs-636", + "react-tabs-637", + "react-tabs-638", + "react-tabs-639", + "react-tabs-64", + "react-tabs-640", + "react-tabs-641", + "react-tabs-642", + "react-tabs-643", + "react-tabs-644", + "react-tabs-645", + "react-tabs-646", + "react-tabs-647", + "react-tabs-648", + "react-tabs-649", + "react-tabs-65", + "react-tabs-650", + "react-tabs-651", + "react-tabs-652", + "react-tabs-653", + "react-tabs-654", + "react-tabs-655", + "react-tabs-656", + "react-tabs-657", + "react-tabs-658", + "react-tabs-659", + "react-tabs-66", + "react-tabs-660", + "react-tabs-661", + "react-tabs-662", + "react-tabs-663", + "react-tabs-664", + "react-tabs-665", + "react-tabs-666", + "react-tabs-667", + "react-tabs-668", + "react-tabs-669", + "react-tabs-67", + "react-tabs-670", + "react-tabs-671", + "react-tabs-672", + "react-tabs-673", + "react-tabs-674", + "react-tabs-675", + "react-tabs-676", + "react-tabs-677", + "react-tabs-678", + "react-tabs-679", + "react-tabs-68", + "react-tabs-680", + "react-tabs-681", + "react-tabs-682", + "react-tabs-683", + "react-tabs-684", + "react-tabs-685", + "react-tabs-686", + "react-tabs-687", + "react-tabs-688", + "react-tabs-689", + "react-tabs-69", + "react-tabs-690", + "react-tabs-691", + "react-tabs-692", + "react-tabs-693", + "react-tabs-694", + "react-tabs-695", + "react-tabs-696", + "react-tabs-697", + "react-tabs-698", + "react-tabs-699", + "react-tabs-7", + "react-tabs-70", + "react-tabs-700", + "react-tabs-701", + "react-tabs-702", + "react-tabs-703", + "react-tabs-704", + "react-tabs-705", + "react-tabs-706", + "react-tabs-707", + "react-tabs-708", + "react-tabs-709", + "react-tabs-71", + "react-tabs-710", + "react-tabs-711", + "react-tabs-712", + "react-tabs-713", + "react-tabs-714", + "react-tabs-715", + "react-tabs-716", + "react-tabs-717", + "react-tabs-718", + "react-tabs-719", + "react-tabs-72", + "react-tabs-720", + "react-tabs-721", + "react-tabs-722", + "react-tabs-723", + "react-tabs-724", + "react-tabs-725", + "react-tabs-726", + "react-tabs-727", + "react-tabs-728", + "react-tabs-729", + "react-tabs-73", + "react-tabs-730", + "react-tabs-731", + "react-tabs-732", + "react-tabs-733", + "react-tabs-734", + "react-tabs-735", + "react-tabs-736", + "react-tabs-737", + "react-tabs-738", + "react-tabs-739", + "react-tabs-74", + "react-tabs-740", + "react-tabs-741", + "react-tabs-742", + "react-tabs-743", + "react-tabs-744", + "react-tabs-745", + "react-tabs-746", + "react-tabs-747", + "react-tabs-748", + "react-tabs-749", + "react-tabs-75", + "react-tabs-750", + "react-tabs-751", + "react-tabs-752", + "react-tabs-753", + "react-tabs-754", + "react-tabs-755", + "react-tabs-756", + "react-tabs-757", + "react-tabs-758", + "react-tabs-759", + "react-tabs-76", + "react-tabs-760", + "react-tabs-761", + "react-tabs-762", + "react-tabs-763", + "react-tabs-764", + "react-tabs-765", + "react-tabs-766", + "react-tabs-767", + "react-tabs-768", + "react-tabs-769", + "react-tabs-77", + "react-tabs-770", + "react-tabs-771", + "react-tabs-772", + "react-tabs-773", + "react-tabs-774", + "react-tabs-775", + "react-tabs-776", + "react-tabs-777", + "react-tabs-778", + "react-tabs-779", + "react-tabs-78", + "react-tabs-780", + "react-tabs-781", + "react-tabs-782", + "react-tabs-783", + "react-tabs-784", + "react-tabs-785", + "react-tabs-786", + "react-tabs-787", + "react-tabs-788", + "react-tabs-789", + "react-tabs-79", + "react-tabs-790", + "react-tabs-791", + "react-tabs-792", + "react-tabs-793", + "react-tabs-794", + "react-tabs-795", + "react-tabs-796", + "react-tabs-797", + "react-tabs-798", + "react-tabs-799", + "react-tabs-8", + "react-tabs-80", + "react-tabs-800", + "react-tabs-801", + "react-tabs-802", + "react-tabs-803", + "react-tabs-804", + "react-tabs-805", + "react-tabs-806", + "react-tabs-807", + "react-tabs-808", + "react-tabs-809", + "react-tabs-81", + "react-tabs-810", + "react-tabs-811", + "react-tabs-812", + "react-tabs-813", + "react-tabs-814", + "react-tabs-815", + "react-tabs-816", + "react-tabs-817", + "react-tabs-818", + "react-tabs-819", + "react-tabs-82", + "react-tabs-820", + "react-tabs-821", + "react-tabs-822", + "react-tabs-823", + "react-tabs-824", + "react-tabs-825", + "react-tabs-826", + "react-tabs-827", + "react-tabs-828", + "react-tabs-829", + "react-tabs-83", + "react-tabs-830", + "react-tabs-831", + "react-tabs-832", + "react-tabs-833", + "react-tabs-834", + "react-tabs-835", + "react-tabs-836", + "react-tabs-837", + "react-tabs-838", + "react-tabs-839", + "react-tabs-84", + "react-tabs-840", + "react-tabs-841", + "react-tabs-842", + "react-tabs-843", + "react-tabs-844", + "react-tabs-845", + "react-tabs-846", + "react-tabs-847", + "react-tabs-848", + "react-tabs-849", + "react-tabs-85", + "react-tabs-850", + "react-tabs-851", + "react-tabs-852", + "react-tabs-853", + "react-tabs-854", + "react-tabs-855", + "react-tabs-856", + "react-tabs-857", + "react-tabs-858", + "react-tabs-859", + "react-tabs-86", + "react-tabs-860", + "react-tabs-861", + "react-tabs-862", + "react-tabs-863", + "react-tabs-864", + "react-tabs-865", + "react-tabs-866", + "react-tabs-867", + "react-tabs-868", + "react-tabs-869", + "react-tabs-87", + "react-tabs-870", + "react-tabs-871", + "react-tabs-872", + "react-tabs-873", + "react-tabs-874", + "react-tabs-875", + "react-tabs-876", + "react-tabs-877", + "react-tabs-878", + "react-tabs-879", + "react-tabs-88", + "react-tabs-880", + "react-tabs-881", + "react-tabs-882", + "react-tabs-883", + "react-tabs-884", + "react-tabs-885", + "react-tabs-886", + "react-tabs-887", + "react-tabs-888", + "react-tabs-889", + "react-tabs-89", + "react-tabs-890", + "react-tabs-891", + "react-tabs-892", + "react-tabs-893", + "react-tabs-894", + "react-tabs-895", + "react-tabs-896", + "react-tabs-897", + "react-tabs-898", + "react-tabs-899", + "react-tabs-9", + "react-tabs-90", + "react-tabs-900", + "react-tabs-901", + "react-tabs-902", + "react-tabs-903", + "react-tabs-904", + "react-tabs-905", + "react-tabs-906", + "react-tabs-907", + "react-tabs-908", + "react-tabs-909", + "react-tabs-91", + "react-tabs-910", + "react-tabs-911", + "react-tabs-912", + "react-tabs-913", + "react-tabs-914", + "react-tabs-915", + "react-tabs-916", + "react-tabs-917", + "react-tabs-918", + "react-tabs-919", + "react-tabs-92", + "react-tabs-920", + "react-tabs-921", + "react-tabs-922", + "react-tabs-923", + "react-tabs-924", + "react-tabs-925", + "react-tabs-926", + "react-tabs-927", + "react-tabs-928", + "react-tabs-929", + "react-tabs-93", + "react-tabs-930", + "react-tabs-931", + "react-tabs-932", + "react-tabs-933", + "react-tabs-934", + "react-tabs-935", + "react-tabs-936", + "react-tabs-937", + "react-tabs-938", + "react-tabs-939", + "react-tabs-94", + "react-tabs-940", + "react-tabs-941", + "react-tabs-942", + "react-tabs-943", + "react-tabs-944", + "react-tabs-945", + "react-tabs-946", + "react-tabs-947", + "react-tabs-948", + "react-tabs-949", + "react-tabs-95", + "react-tabs-950", + "react-tabs-951", + "react-tabs-952", + "react-tabs-953", + "react-tabs-954", + "react-tabs-955", + "react-tabs-956", + "react-tabs-957", + "react-tabs-958", + "react-tabs-959", + "react-tabs-96", + "react-tabs-960", + "react-tabs-961", + "react-tabs-962", + "react-tabs-963", + "react-tabs-964", + "react-tabs-965", + "react-tabs-966", + "react-tabs-967", + "react-tabs-968", + "react-tabs-969", + "react-tabs-97", + "react-tabs-970", + "react-tabs-971", + "react-tabs-972", + "react-tabs-973", + "react-tabs-974", + "react-tabs-975", + "react-tabs-976", + "react-tabs-977", + "react-tabs-978", + "react-tabs-979", + "react-tabs-98", + "react-tabs-980", + "react-tabs-981", + "react-tabs-982", + "react-tabs-983", + "react-tabs-984", + "react-tabs-985", + "react-tabs-986", + "react-tabs-987", + "react-tabs-988", + "react-tabs-989", + "react-tabs-99", + "react-tabs-990", + "react-tabs-991", + "react-tabs-992", + "react-tabs-993", + "react-tabs-994", + "react-tabs-995", + "react-tabs-996", + "react-tabs-997", + "react-tabs-998", + "react-tabs-999", + "react_dropdown_aria_0", + "react_dropdown_aria_0_list", + "react_dropdown_aria_0_list_0", + "react_dropdown_aria_0_list_1", + "react_dropdown_aria_0_list_2", + "react_dropdown_aria_0_list_3", + "react_dropdown_aria_1", + "react_dropdown_aria_10", + "react_dropdown_aria_10_list", + "react_dropdown_aria_10_list_0", + "react_dropdown_aria_10_list_1", + "react_dropdown_aria_10_list_2", + "react_dropdown_aria_10_list_3", + "react_dropdown_aria_10_list_4", + "react_dropdown_aria_11", + "react_dropdown_aria_11_list", + "react_dropdown_aria_11_list_0", + "react_dropdown_aria_11_list_1", + "react_dropdown_aria_11_list_2", + "react_dropdown_aria_11_list_3", + "react_dropdown_aria_11_list_4", + "react_dropdown_aria_12", + "react_dropdown_aria_12_list", + "react_dropdown_aria_12_list_0", + "react_dropdown_aria_12_list_1", + "react_dropdown_aria_12_list_2", + "react_dropdown_aria_12_list_3", + "react_dropdown_aria_12_list_4", + "react_dropdown_aria_13", + "react_dropdown_aria_13_list", + "react_dropdown_aria_13_list_0", + "react_dropdown_aria_13_list_1", + "react_dropdown_aria_13_list_2", + "react_dropdown_aria_13_list_3", + "react_dropdown_aria_13_list_4", + "react_dropdown_aria_14", + "react_dropdown_aria_14_list", + "react_dropdown_aria_14_list_0", + "react_dropdown_aria_14_list_1", + "react_dropdown_aria_14_list_2", + "react_dropdown_aria_14_list_3", + "react_dropdown_aria_14_list_4", + "react_dropdown_aria_15", + "react_dropdown_aria_15_list", + "react_dropdown_aria_15_list_0", + "react_dropdown_aria_15_list_1", + "react_dropdown_aria_15_list_2", + "react_dropdown_aria_15_list_3", + "react_dropdown_aria_15_list_4", + "react_dropdown_aria_16", + "react_dropdown_aria_16_list", + "react_dropdown_aria_16_list_0", + "react_dropdown_aria_16_list_1", + "react_dropdown_aria_16_list_2", + "react_dropdown_aria_16_list_3", + "react_dropdown_aria_17", + "react_dropdown_aria_17_list", + "react_dropdown_aria_17_list_0", + "react_dropdown_aria_17_list_1", + "react_dropdown_aria_17_list_2", + "react_dropdown_aria_17_list_3", + "react_dropdown_aria_17_list_4", + "react_dropdown_aria_17_list_5", + "react_dropdown_aria_18", + "react_dropdown_aria_18_list", + "react_dropdown_aria_18_list_0", + "react_dropdown_aria_18_list_1", + "react_dropdown_aria_18_list_2", + "react_dropdown_aria_18_list_3", + "react_dropdown_aria_18_list_4", + "react_dropdown_aria_18_list_5", + "react_dropdown_aria_19", + "react_dropdown_aria_19_list", + "react_dropdown_aria_19_list_0", + "react_dropdown_aria_19_list_1", + "react_dropdown_aria_19_list_2", + "react_dropdown_aria_19_list_3", + "react_dropdown_aria_19_list_4", + "react_dropdown_aria_19_list_5", + "react_dropdown_aria_1_list", + "react_dropdown_aria_1_list_0", + "react_dropdown_aria_1_list_1", + "react_dropdown_aria_2", + "react_dropdown_aria_20", + "react_dropdown_aria_20_list", + "react_dropdown_aria_20_list_0", + "react_dropdown_aria_20_list_1", + "react_dropdown_aria_20_list_2", + "react_dropdown_aria_20_list_3", + "react_dropdown_aria_20_list_4", + "react_dropdown_aria_20_list_5", + "react_dropdown_aria_21", + "react_dropdown_aria_21_list", + "react_dropdown_aria_21_list_0", + "react_dropdown_aria_21_list_1", + "react_dropdown_aria_21_list_2", + "react_dropdown_aria_21_list_3", + "react_dropdown_aria_21_list_4", + "react_dropdown_aria_21_list_5", + "react_dropdown_aria_22", + "react_dropdown_aria_22_list", + "react_dropdown_aria_22_list_0", + "react_dropdown_aria_22_list_1", + "react_dropdown_aria_22_list_2", + "react_dropdown_aria_22_list_3", + "react_dropdown_aria_22_list_4", + "react_dropdown_aria_22_list_5", + "react_dropdown_aria_23", + "react_dropdown_aria_23_list", + "react_dropdown_aria_23_list_0", + "react_dropdown_aria_23_list_1", + "react_dropdown_aria_23_list_2", + "react_dropdown_aria_23_list_3", + "react_dropdown_aria_23_list_4", + "react_dropdown_aria_23_list_5", + "react_dropdown_aria_24", + "react_dropdown_aria_24_list", + "react_dropdown_aria_24_list_0", + "react_dropdown_aria_24_list_1", + "react_dropdown_aria_24_list_2", + "react_dropdown_aria_24_list_3", + "react_dropdown_aria_24_list_4", + "react_dropdown_aria_24_list_5", + "react_dropdown_aria_25", + "react_dropdown_aria_25_list", + "react_dropdown_aria_25_list_0", + "react_dropdown_aria_25_list_1", + "react_dropdown_aria_25_list_2", + "react_dropdown_aria_25_list_3", + "react_dropdown_aria_25_list_4", + "react_dropdown_aria_25_list_5", + "react_dropdown_aria_25_list_6", + "react_dropdown_aria_26", + "react_dropdown_aria_26_list", + "react_dropdown_aria_26_list_0", + "react_dropdown_aria_26_list_1", + "react_dropdown_aria_26_list_2", + "react_dropdown_aria_26_list_3", + "react_dropdown_aria_26_list_4", + "react_dropdown_aria_26_list_5", + "react_dropdown_aria_26_list_6", + "react_dropdown_aria_27", + "react_dropdown_aria_27_list", + "react_dropdown_aria_27_list_0", + "react_dropdown_aria_27_list_1", + "react_dropdown_aria_27_list_2", + "react_dropdown_aria_27_list_3", + "react_dropdown_aria_27_list_4", + "react_dropdown_aria_27_list_5", + "react_dropdown_aria_27_list_6", + "react_dropdown_aria_28", + "react_dropdown_aria_28_list", + "react_dropdown_aria_28_list_0", + "react_dropdown_aria_28_list_1", + "react_dropdown_aria_28_list_2", + "react_dropdown_aria_28_list_3", + "react_dropdown_aria_28_list_4", + "react_dropdown_aria_28_list_5", + "react_dropdown_aria_28_list_6", + "react_dropdown_aria_29", + "react_dropdown_aria_29_list", + "react_dropdown_aria_29_list_0", + "react_dropdown_aria_29_list_1", + "react_dropdown_aria_29_list_2", + "react_dropdown_aria_29_list_3", + "react_dropdown_aria_29_list_4", + "react_dropdown_aria_29_list_5", + "react_dropdown_aria_29_list_6", + "react_dropdown_aria_2_list", + "react_dropdown_aria_2_list_0", + "react_dropdown_aria_2_list_1", + "react_dropdown_aria_3", + "react_dropdown_aria_30", + "react_dropdown_aria_30_list", + "react_dropdown_aria_30_list_0", + "react_dropdown_aria_30_list_1", + "react_dropdown_aria_30_list_2", + "react_dropdown_aria_30_list_3", + "react_dropdown_aria_30_list_4", + "react_dropdown_aria_30_list_5", + "react_dropdown_aria_30_list_6", + "react_dropdown_aria_31", + "react_dropdown_aria_31_list", + "react_dropdown_aria_31_list_0", + "react_dropdown_aria_31_list_1", + "react_dropdown_aria_31_list_2", + "react_dropdown_aria_31_list_3", + "react_dropdown_aria_31_list_4", + "react_dropdown_aria_31_list_5", + "react_dropdown_aria_31_list_6", + "react_dropdown_aria_32", + "react_dropdown_aria_32_list", + "react_dropdown_aria_32_list_0", + "react_dropdown_aria_32_list_1", + "react_dropdown_aria_32_list_2", + "react_dropdown_aria_32_list_3", + "react_dropdown_aria_32_list_4", + "react_dropdown_aria_32_list_5", + "react_dropdown_aria_32_list_6", + "react_dropdown_aria_33", + "react_dropdown_aria_33_list", + "react_dropdown_aria_33_list_0", + "react_dropdown_aria_33_list_1", + "react_dropdown_aria_33_list_2", + "react_dropdown_aria_33_list_3", + "react_dropdown_aria_33_list_4", + "react_dropdown_aria_33_list_5", + "react_dropdown_aria_33_list_6", + "react_dropdown_aria_34", + "react_dropdown_aria_34_list", + "react_dropdown_aria_34_list_0", + "react_dropdown_aria_34_list_1", + "react_dropdown_aria_34_list_2", + "react_dropdown_aria_34_list_3", + "react_dropdown_aria_34_list_4", + "react_dropdown_aria_34_list_5", + "react_dropdown_aria_34_list_6", + "react_dropdown_aria_35", + "react_dropdown_aria_35_list", + "react_dropdown_aria_35_list_0", + "react_dropdown_aria_35_list_1", + "react_dropdown_aria_35_list_2", + "react_dropdown_aria_35_list_3", + "react_dropdown_aria_35_list_4", + "react_dropdown_aria_35_list_5", + "react_dropdown_aria_35_list_6", + "react_dropdown_aria_36", + "react_dropdown_aria_36_list", + "react_dropdown_aria_36_list_0", + "react_dropdown_aria_36_list_1", + "react_dropdown_aria_36_list_2", + "react_dropdown_aria_36_list_3", + "react_dropdown_aria_36_list_4", + "react_dropdown_aria_36_list_5", + "react_dropdown_aria_36_list_6", + "react_dropdown_aria_37", + "react_dropdown_aria_37_list", + "react_dropdown_aria_37_list_0", + "react_dropdown_aria_37_list_1", + "react_dropdown_aria_38", + "react_dropdown_aria_38_list", + "react_dropdown_aria_38_list_0", + "react_dropdown_aria_38_list_1", + "react_dropdown_aria_38_list_2", + "react_dropdown_aria_39", + "react_dropdown_aria_39_list", + "react_dropdown_aria_39_list_0", + "react_dropdown_aria_39_list_1", + "react_dropdown_aria_39_list_2", + "react_dropdown_aria_3_list", + "react_dropdown_aria_3_list_0", + "react_dropdown_aria_3_list_1", + "react_dropdown_aria_4", + "react_dropdown_aria_40", + "react_dropdown_aria_40_list", + "react_dropdown_aria_40_list_0", + "react_dropdown_aria_40_list_1", + "react_dropdown_aria_40_list_2", + "react_dropdown_aria_41", + "react_dropdown_aria_41_list", + "react_dropdown_aria_41_list_0", + "react_dropdown_aria_41_list_1", + "react_dropdown_aria_41_list_2", + "react_dropdown_aria_42", + "react_dropdown_aria_42_list", + "react_dropdown_aria_42_list_0", + "react_dropdown_aria_42_list_1", + "react_dropdown_aria_42_list_2", + "react_dropdown_aria_43", + "react_dropdown_aria_43_list", + "react_dropdown_aria_43_list_0", + "react_dropdown_aria_43_list_1", + "react_dropdown_aria_43_list_2", + "react_dropdown_aria_44", + "react_dropdown_aria_44_list", + "react_dropdown_aria_44_list_0", + "react_dropdown_aria_44_list_1", + "react_dropdown_aria_44_list_2", + "react_dropdown_aria_45", + "react_dropdown_aria_45_list", + "react_dropdown_aria_45_list_0", + "react_dropdown_aria_45_list_1", + "react_dropdown_aria_45_list_2", + "react_dropdown_aria_46", + "react_dropdown_aria_46_list", + "react_dropdown_aria_46_list_0", + "react_dropdown_aria_46_list_1", + "react_dropdown_aria_47", + "react_dropdown_aria_47_list", + "react_dropdown_aria_47_list_0", + "react_dropdown_aria_47_list_1", + "react_dropdown_aria_48", + "react_dropdown_aria_48_list", + "react_dropdown_aria_48_list_0", + "react_dropdown_aria_48_list_1", + "react_dropdown_aria_4_list", + "react_dropdown_aria_4_list_0", + "react_dropdown_aria_4_list_1", + "react_dropdown_aria_4_list_2", + "react_dropdown_aria_5", + "react_dropdown_aria_5_list", + "react_dropdown_aria_5_list_0", + "react_dropdown_aria_5_list_1", + "react_dropdown_aria_5_list_2", + "react_dropdown_aria_6", + "react_dropdown_aria_6_list", + "react_dropdown_aria_6_list_0", + "react_dropdown_aria_6_list_1", + "react_dropdown_aria_6_list_2", + "react_dropdown_aria_6_list_3", + "react_dropdown_aria_6_list_4", + "react_dropdown_aria_7", + "react_dropdown_aria_7_list", + "react_dropdown_aria_7_list_0", + "react_dropdown_aria_7_list_1", + "react_dropdown_aria_7_list_2", + "react_dropdown_aria_7_list_3", + "react_dropdown_aria_7_list_4", + "react_dropdown_aria_8", + "react_dropdown_aria_8_list", + "react_dropdown_aria_8_list_0", + "react_dropdown_aria_8_list_1", + "react_dropdown_aria_8_list_2", + "react_dropdown_aria_8_list_3", + "react_dropdown_aria_8_list_4", + "react_dropdown_aria_9", + "react_dropdown_aria_9_list", + "react_dropdown_aria_9_list_0", + "react_dropdown_aria_9_list_1", + "react_dropdown_aria_9_list_2", + "react_dropdown_aria_9_list_3", + "react_dropdown_aria_9_list_4", + "read-a-query-plan", + "read-an-explain-report", + "read-and-write-urls-with-authentication", + "read-buffer", + "read-buffer--0", + "read-buffer--0-1", + "read-buffer-1", + "read-from-node-ids", + "read-query-limit-errors", + "read-request-duration", + "read-the-physical-plan", + "readdata", + "readers-rolereader", + "reads", + "reads-total", + "readwrite-token", + "real-world-application-of-basic-syntax", + "real-world-example", + "realm", + "realm--influxdb", + "rebalance-influxdb-enterprise-clusters", + "rebalance-procedure-1-rebalance-a-cluster-to-create-space", + "rebalance-procedure-2-rebalance-a-cluster-to-increase-availability", + "rebalance-the-cluster", + "rebuild-the-tsi-index", + "rebuild-the-tsi-index-in-an-influxdb-enterprise-cluster", + "rebuild-tsi-indexes", + "rec", + "recalculate-the-_values-column", + "receiving-fewer-than-n-points", + "recently-executed-queries", + "recipients", + "recognize-and-address-bottlenecks", + "recognize-overlapping-and-duplicate-data", + "recommendations", + "recommended", + "recommended--set-appropriate-directory-permissions", + "recommended--verify-the-authenticity-of-the-data-service-download", + "recommended--verify-the-authenticity-of-the-meta-service-download", + "recommended-cluster-configurations", + "recommended-configuration-for-modern-compatibility", + "recommended-if", + "recommended-if-1", + "recommended-modern-compatibility-cipher-settings", + "recommended-scaling-strategies-per-component", + "recommended-server-configuration-for-modern-compatibility", + "recommended-verify-the-authenticity-of-the-release-download", + "reconcile-unmatched-sources", + "reconnect-a-data-node-with-a-failed-disk", + "record", + "record-a-batch-task-and-assign-a-custom-recording-id", + "record-a-batch-task-using-a-relative-time-range", + "record-a-batch-task-using-an-absolute-time-range", + "record-a-stream-task", + "record-a-stream-task-and-assign-a-custom-recording-id", + "record-an-influxql-query", + "record-an-influxql-query-and-assign-a-custom-recording-id", + "record-an-influxql-query-for-a-specific-influxdb-cluster", + "record-batch", + "record-constraint", + "record-is-missing-label-label", + "record-literals", + "record-package", + "record-polymorphism", + "record-query", + "record-query-and-backfill-with-stream", + "record-stream", + "record-syntax", + "record-types", + "recordbatch", + "recordbatchesexec", + "recordbatchesexec-attributes", + "records", + "recover-from-a-failed-restore", + "recover-from-a-license-misconfiguration", + "recover-from-bad-configurations", + "recover-user-credentials", + "recoveredpanics", + "recoveredpanics-1", + "recovery", + "recovery-point-objective-rpo", + "recovery-time-objective-rto", + "recovery_action", + "recovery_url", + "recreate-the-time-column", + "recursively-apply-templates-from-a-directory", + "redfish", + "redhat--centos-64-bit", + "redhat-and-centos-64-bit", + "redhat-and-centos-64-bit-1", + "redhat-and-centos-64-bit-2", + "redirect-http-access-logging", + "redirecting-http-access-logging", + "redis", + "redis_sentinel", + "redistimeseries", + "redoc", + "reduce-query-noise", + "refactor-the-alerting-service", + "reference-dictionary-values", + "reference-keys-statically", + "reference-nested-records", + "reference-tickscripts", + "reference-values-in-a-dynamic-array", + "reference-values-in-a-dynamic-record", + "reference-values-in-a-dynamic-type", + "reference-values-in-a-record", + "reference-values-in-an-array", + "refresh-your-admin-token", + "regenerate-an-admin-token", + "regenerate-an-operator-admin-token", + "regenerating-the-operator-token", + "regex", + "regexp-match", + "regexp-match-case-insensitive", + "regexp-nomatch", + "regexp-nomatch-case-insensitive", + "regexp-package", + "regexp_count", + "regexp_like", + "regexp_match", + "regexp_replace", + "region", + "region-definitions", + "regions-with-multiple-clusters", + "register-a-new-application-with-device-code-flow-enabled", + "regr_avgx", + "regr_avgy", + "regr_count", + "regr_intercept", + "regr_r2", + "regr_slope", + "regr_sxx", + "regr_sxy", + "regr_syy", + "regular-expression", + "regular-expression-examples", + "regular-expression-flags", + "regular-expression-functions", + "regular-expression-literals", + "regular-expression-operators", + "regular-expression-syntax", + "regular-expression-types", + "regular-expressions", + "regular-expressions-in-flux", + "rejected-points", + "rejected_points-schema", + "related", + "related-endpoints", + "related-functions", + "related-functions-1", + "related-functions-10", + "related-functions-11", + "related-functions-12", + "related-functions-13", + "related-functions-14", + "related-functions-15", + "related-functions-16", + "related-functions-17", + "related-functions-2", + "related-functions-3", + "related-functions-4", + "related-functions-5", + "related-functions-6", + "related-functions-7", + "related-functions-8", + "related-functions-9", + "related-guide", + "related-guides", + "related-kubernetes-documentation", + "relative-strength-index-rsi-rules", + "relative-time", + "relative_strength_index", + "release-list", + "release-notes", + "release-notes-1", + "release-notes-10", + "release-notes-11", + "release-notes-12", + "release-notes-13", + "release-notes-2", + "release-notes-3", + "release-notes-4", + "release-notes-5", + "release-notes-6", + "release-notes-7", + "release-notes-8", + "release-notes-9", + "release-notes-related-to-influxdb-cloud-dedicated", + "release-notes-related-to-influxdb-clustered", + "release-toc", + "relevant-sideload-properties", + "reliability-features", + "reload", + "reload-a-specific-task", + "reload-all-tasks-with-ids-that-match-a-pattern", + "reload-sideload", + "remap-or-assign-values-in-your-data", + "remote-collect-interval", + "remote-telegraf-configuration", + "remotefile", + "removals", + "remove-a-duplicate-key", + "remove-a-grant", + "remove-a-key-value-pair-from-a-dictionary", + "remove-a-member", + "remove-a-member-from-an-organization", + "remove-a-member-from-an-organization-in-the-influxdb-ui", + "remove-a-member-from-an-organization-using-the-influx-cli", + "remove-a-permission-from-a-role", + "remove-a-property-from-a-dictionary", + "remove-a-restriction", + "remove-a-stack", + "remove-a-stack-and-all-of-its-associated-resources", + "remove-a-suffix-from-all-values-in-a-column", + "remove-a-telegraf-configuration", + "remove-a-topic-handler", + "remove-a-user", + "remove-a-user-from-a-role", + "remove-a-user-from-your-organization", + "remove-multiple-telegraf-configurations", + "remove-nodes-from-a-cluster", + "remove-nodes-from-a-cluster-and-assume-yes-to-all-prompts", + "remove-non-printable-unicode-characters-from-all-tsm-files", + "remove-organizations", + "remove-permissions-from-a-user", + "remove-role-permissions", + "remove-subscriptions", + "remove-the-local-meta-node-running-on-8091", + "remove-the-meta-node-running-on-meta28091", + "remove-the-smtp-configuration-override", + "remove-unnecessary-columns-in-large-datasets", + "remove-unnecessary-data", + "remove-users", + "remove-website-demo-data", + "remove-yourself-from-an-organization", + "removed-in-influx-cli-v205", + "removed-in-influxdb-20-beta-16", + "removed-in-influxdb-oss-205", + "removed-prometheusoperator-feature-flag", + "removeshardreq", + "rename", + "rename-a-check", + "rename-a-database", + "rename-columns-using-a-function", + "rename-data-nodes", + "rename-hosts-in-influxdb-enterprise", + "rename-meta-nodes", + "rename-the-output-field-key", + "renew-a-license", + "renew-or-update-a-license-key-or-file", + "renew-your-license", + "repair", + "repair-order", + "repairing-entropy", + "repeat", + "repeat-a-string-based-on-existing-columns", + "repeat-for-each-dbrp-combination", + "repeated-values-in-dvc-results", + "repl", + "replace", + "replace-a-meta-node-in-a-functional-cluster", + "replace-a-node-in-a-cluster-with-security-enable", + "replace-a-specific-number-of-string-matches", + "replace-all-substrings-that-match-a-regular-expression", + "replace-an-unresponsive-meta-node", + "replace-column-header-with-annotation-shorthand", + "replace-data-nodes-in-an-influxdb-enterprise-cluster", + "replace-influxdb-enterprise-cluster-meta-nodes-and-data-nodes", + "replace-meta-nodes-in-an-influxdb-enterprise-cluster", + "replace-regular-expression-matches-in-a-string", + "replace-regular-expression-matches-in-string-column-values", + "replace-responsive-and-unresponsive-data-nodes-in-a-cluster", + "replace-string-matches", + "replacement", + "replacing-a-machine-that-is-running-a-data-node", + "replacing-an-unresponsive-data-node", + "replay", + "replay-a-recording", + "replay-data-without-recording", + "replay-live", + "replay-live-batch", + "replay-live-flags", + "replay-live-query", + "replay-the-results-of-a-query-against-an-alert-task", + "replicas", + "replicate-an-organization", + "replicate-data-from-influxdb-oss", + "replicate-downsampled-or-processed-data", + "replicate-writes-to-influxdb-oss-to-influxdb-cloud", + "replication", + "replication-factor", + "replication-factor-1", + "replication-factor-2", + "replication-factor-3", + "replication-factor-rf", + "replication-interval", + "replication-queue-total-points-queued", + "replication-service-call-duration", + "replication-service-call-total", + "replications-queue", + "replications-queue-1", + "replications-queue-2", + "replications-queue-current-bytes-queued", + "replications-queue-remote-write-bytes-sent", + "replications-queue-remote-write-errors", + "replications-queue-total-bytes-queued", + "replications-total", + "report", + "report-db", + "report-disk", + "report-issues", + "report-on-disk-size-by-measurement", + "report-on-disk-size-by-shard", + "report-query-performance-issues", + "report-security-vulnerabilities", + "report-the-cardinality-of-all-buckets", + "report-the-cardinality-of-all-retention-policies", + "report-the-cardinality-of-measurements-in-a-specific-bucket", + "report-the-cardinality-of-measurements-in-all-buckets", + "report-the-cardinality-of-tsi-files", + "report-the-total-cardinality-of-your-influxdb-instance", + "reporting", + "reporting-disabled", + "reporting-disabled--false", + "reporttsi", + "representation", + "req", + "req-1", + "reqactive", + "reqdurationns", + "request-a-proof-of-concept-from-the-ui", + "request-an-influxdb-cloud-dedicated-cluster", + "request-body", + "request-body-1", + "request-body-2", + "request-duration-flight-doget-ok--ok", + "request-headers", + "request-headers-1", + "request-headers-2", + "request-headers-3", + "request-headers-4", + "request-headers-5", + "request-help-to-troubleshoot-queries", + "request-multiple-queries", + "request-query-parameters", + "request-query-results-in-csv-format", + "request-query-results-in-csv-format-1", + "request-url", + "request-url-1", + "request-url-2", + "requests-package", + "requests-per-operation---error", + "requests-per-operation---success", + "requests-total", + "require-https-on-the-object-store", + "require-internal-shared-secret-if-meta-auth-enabled", + "require-tls-on-your-catalog-database", + "required", + "required-2x-credentials", + "required-annotations-and-columns", + "required-credentials", + "required-data", + "required-influxdb-cloud-credentials", + "required-input-schema", + "required-parameters", + "required-permissions", + "required-permissions-for-influxdb-cloud", + "required-permissions-for-influxdb-oss", + "required-user-roles", + "requirements", + "requirements-1", + "requirements-and-behavior", + "requirements-and-guidelines", + "requirements-for-influxdb-enterprise-clusters", + "requires-file-system-access", + "requires-global-flags", + "rerun-failed-tasks-with-the-kapacitor-api", + "rerun-update-migrations", + "rerunning-a-recording-of-a-batch-alert", + "rerunning-a-recording-of-a-stream-alert", + "resample-clause", + "resampling-previous-time-intervals", + "resend-an-invitation", + "reserved-characters", + "reserved-keywords", + "reserved-variable-names", + "reset-a-users-password", + "resolve-data-type-conflicts", + "resolve-explicit-schema-rejections", + "resolve-high-cardinality", + "resolve-high-series-cardinality", + "resource", + "resource-fields-that-support-environment-references", + "resource-limits", + "resource-management", + "resourcename", + "resourcenametag", + "resources", + "resourcetag", + "responders", + "response", + "response-1", + "response-10", + "response-11", + "response-12", + "response-13", + "response-14", + "response-15", + "response-16", + "response-17", + "response-18", + "response-19", + "response-2", + "response-20", + "response-3", + "response-4", + "response-5", + "response-6", + "response-7", + "response-8", + "response-9", + "response-codes", + "response-format", + "responses", + "responses-1", + "responses-2", + "responses-3", + "restart-kapacitor", + "restart-kapacitor-1", + "restart-kapacitor-2", + "restart-the-influxdb-meta-service", + "restart-the-influxdb-service", + "restart-traffic-to-data-nodes", + "restore-a-backup", + "restore-a-backup-created-prior-to-version-120", + "restore-a-chronograf-database", + "restore-a-database", + "restore-a-database-offline", + "restore-a-database-to-a-remote-influxdb-instance", + "restore-a-specific-database", + "restore-a-specific-retention-policy", + "restore-a-specific-retention-policy-legacy", + "restore-a-specific-retention-policy-offline", + "restore-a-specific-shard", + "restore-a-specific-shard-legacy", + "restore-a-specific-shard-offline", + "restore-all-data-to-a-remote-influxdb-instance", + "restore-all-databases", + "restore-all-time-series-data", + "restore-and-replace-all-data", + "restore-and-replace-all-influxdb-data", + "restore-backup-data", + "restore-backup-data-for-a-specific-bucket-into-a-new-bucket", + "restore-data", + "restore-data-from-a-specific-bucket", + "restore-data-to-a-database-that-already-exists", + "restore-data-to-a-database-that-already-exists-legacy", + "restore-data-to-a-retention-policy-that-already-exists", + "restore-data-to-a-retention-policy-that-already-exists-legacy", + "restore-data-to-an-existing-database", + "restore-data-with-the-influx-cli", + "restore-examples", + "restore-flags", + "restore-flags-1", + "restore-from-a--full-backup", + "restore-from-a-full-backup", + "restore-from-a-metadata-backup", + "restore-from-an-incremental-backup", + "restore-from-an-incremental-backup-for-a-database-and-merge-that-database-into-an-existing-database", + "restore-from-an-incremental-backup-for-a-single-database-and-give-the-database-a-new-name", + "restore-overwrite-metadata-from-a-full-or-incremental-backup-to-fix-damaged-metadata", + "restore-to-a-new-influxdb-server", + "restore-to-a-recovery-point", + "restore-utility", + "restore-writes-information-not-part-of-the-original-backup", + "restores-from-an-existing-cluster-to-a-new-cluster", + "restrict-by-database", + "restrict-by-measurement-in-a-database", + "restrict-by-series-in-a-database", + "restrictions", + "restructure-tables", + "result-set", + "resulting-group-key", + "resulting-line-protocol", + "resulting-line-protocol-1", + "results", + "results-1", + "results-2", + "results-structure", + "retain", + "retention", + "retention-autocreate", + "retention-autocreate--true", + "retention-check-duration", + "retention-enforcement-related-configuration-settings", + "retention-period", + "retention-period-syntax", + "retention-period-syntax-influxctl-cli", + "retention-period-syntax-management-api", + "retention-periods", + "retention-policy--", + "retention-policy---1", + "retention-policy---2", + "retention-policy---3", + "retention-policy-management", + "retention-policy-rp", + "retention-policy-settings", + "retention-policy-shard-deletions", + "retentionpolicy", + "retentionrules-example", + "rethinkdb", + "retries", + "retrieve-a-database-token-by-id", + "retrieve-a-key-from-the-influxdb-secret-store", + "retrieve-a-partition-id", + "retrieve-a-role-document", + "retrieve-a-script", + "retrieve-a-secret-using-a-non-default-configuration-location", + "retrieve-a-secret-using-the-default-configuration-location", + "retrieve-a-user-details-document", + "retrieve-and-filter-data", + "retrieve-and-list-devices", + "retrieve-and-process-arrow-data", + "retrieve-authentication-credentials-from-a-file", + "retrieve-authentication-credentials-from-environment-variables", + "retrieve-data-example", + "retrieve-data-syntax", + "retrieve-system-information-for-a-query", + "retrieve-the-current-configuration", + "retrieve-the-current-time", + "retrieve-the-health-of-an-influxdb-oss-instance", + "retrieve-your-clusters-admin-token", + "retry-a-kapacitor-flux-task-run", + "retry-a-kapacitor-flux-task-run-api", + "retry-a-limited-number-of-failed-runs-for-a-task", + "retry-a-task-run", + "retry-concurrency", + "retry-failed-flux-task-runs-for-a-specific-task", + "retry-failed-flux-task-runs-for-all-tasks", + "retry-failed-kapacitor-flux-tasks", + "retry-failed-runs-for-a-limited-number-of-tasks", + "retry-failed-task-runs", + "retry-failed-task-runs-1", + "retry-failed-task-runs-for-a-specific-task-id", + "retry-failed-task-runs-that-occurred-after-a-specific-time", + "retry-failed-task-runs-that-occurred-before-a-specific-time", + "retry-failed-task-runs-that-occurred-in-a-specific-time-range", + "retry-flux-task-runs-that-failed-in-a-specific-time-range", + "retry-interval", + "retry-max-interval", + "retry-rate-limit", + "return-a-cumulative-state-count", + "return-a-cumulative-state-count-and-duration", + "return-a-cumulative-state-duration-in-milliseconds", + "return-a-diff-between-a-stream-of-tables-an-the-expected-output", + "return-a-diff-between-a-stream-of-tables-and-the-expected-output", + "return-a-fixed-location-record", + "return-a-list-of-measurements-in-an-influxdb-bucket", + "return-a-nan-value", + "return-a-property-of-a-dictionary", + "return-a-stream-of-tables-with-the-current-system-time", + "return-a-timestamp-representing-today", + "return-a-timezone-based-location-record", + "return-a-value-representing-the-50th-percentile-of-each-input-table", + "return-all-distinct-group-key-columns-in-a-single-table", + "return-all-property-keys-in-a-record", + "return-an-alert-level-based-on-a-value", + "return-an-array-of-regular-expression-matches", + "return-an-infinity-float-value-from-a-positive-or-negative-sign-value", + "return-distinct-values-from-a-non-default-column", + "return-distinct-values-from-data-with-null-values", + "return-distinct-values-from-each-input-table", + "return-distinct-values-from-the-_value-column", + "return-group-key-columns-as-an-array", + "return-group-key-columns-for-each-input-table", + "return-information-about-a-cluster", + "return-negative-derivative-values", + "return-part-of-a-string-based-on-character-index", + "return-query-results-with-millisecond-unix-timestamps", + "return-records-representing-state-changes", + "return-results-as-json-or-csv", + "return-rows-with-an-aggregate-value-greater-than-a-specified-number", + "return-rows-with-the-three-highest-values-in-each-input-table", + "return-rows-with-the-two-lowest-values-in-each-input-table", + "return-rows-with-unique-values-in-each-input-table", + "return-start-and-stop-timestamps-for-the-current-month", + "return-start-and-stop-timestamps-of-last-friday", + "return-start-and-stop-timestamps-of-last-monday", + "return-start-and-stop-timestamps-of-last-saturday", + "return-start-and-stop-timestamps-of-last-sunday", + "return-start-and-stop-timestamps-of-last-thursday", + "return-start-and-stop-timestamps-of-last-tuesday", + "return-start-and-stop-timestamps-of-the-current-week-starting-on-monday", + "return-start-and-stop-timestamps-of-the-current-week-starting-on-sunday", + "return-start-and-stop-timestamps-of-yesterday", + "return-statements", + "return-the-absolute-value", + "return-the-acosine-of-a-value", + "return-the-arcsine-of-a-value", + "return-the-arctangent-of-a-value", + "return-the-average-of-values-in-each-input-table", + "return-the-average-result-greater-than-a-specified-number-from-a-specific-time-range", + "return-the-base-10-exponential-of-n", + "return-the-base-2-exponential-of-a-value", + "return-the-base-e-exponential-of-a-value", + "return-the-base-x-exponential-of-a-value", + "return-the-binary-exponent-of-a-value", + "return-the-binary-expression-of-a-value", + "return-the-binary-logarithm-of-a-value", + "return-the-center-coordinates-of-an-s2-cell", + "return-the-complementary-error-function-of-a-value", + "return-the-copysign-of-two-columns", + "return-the-covariance-between-two-streams-of-tables", + "return-the-cube-root-of-a-value", + "return-the-current-day-of-the-month", + "return-the-current-day-of-the-week", + "return-the-current-day-of-the-year", + "return-the-current-hour", + "return-the-current-microsecond-unit", + "return-the-current-millisecond-unit", + "return-the-current-minute", + "return-the-current-nanosecond-unit", + "return-the-current-numeric-month", + "return-the-current-quarter", + "return-the-current-second", + "return-the-current-week-of-the-year", + "return-the-current-year", + "return-the-day-of-the-month-for-a-relative-duration", + "return-the-day-of-the-month-for-a-time-value", + "return-the-day-of-the-week-for-a-relative-duration", + "return-the-day-of-the-week-for-a-time-value", + "return-the-day-of-the-year-for-a-relative-duration", + "return-the-day-of-the-year-for-a-time-value", + "return-the-decimal-lagarithm-of-a-value", + "return-the-difference-between-minimum-and-maximum-values", + "return-the-error-function-of-a-value", + "return-the-first-non-null-value-in-each-input-table", + "return-the-first-regular-expression-match-in-a-string", + "return-the-first-row-in-each-input-table", + "return-the-first-temperature-from-each-room", + "return-the-flux-version-in-a-stream-of-tables", + "return-the-gamma-function-of-a-value", + "return-the-highest-and-lowest-three-results-in-a-single-result-set", + "return-the-highest-current-value-from-a-stream-of-tables", + "return-the-highest-table-average-from-a-stream-of-tables", + "return-the-highest-two-values-from-a-stream-of-tables", + "return-the-hour-in-local-time", + "return-the-hour-of-a-relative-duration", + "return-the-hour-of-a-time-value", + "return-the-hyperbolic-sine-of-a-value", + "return-the-hyperbolic-tangent-of-a-value", + "return-the-hypotenuse-of-two-values", + "return-the-integer-and-float-that-sum-to-a-value", + "return-the-inverse-complimentary-error-function", + "return-the-inverse-error-function-of-a-value", + "return-the-inverse-hyperbolic-cosine-of-a-value", + "return-the-inverse-hyperbolic-sine-of-a-value", + "return-the-inverse-of-mathfrexp", + "return-the-larger-of-two-values", + "return-the-last-non-null-value-in-each-input-table", + "return-the-last-row-from-each-input-table", + "return-the-last-temperature-from-each-room", + "return-the-length-of-an-array", + "return-the-lesser-of-two-values", + "return-the-lowest-current-value-from-a-stream-of-tables", + "return-the-lowest-table-average-from-a-stream-of-tables", + "return-the-lowest-two-values-from-a-stream-of-tables", + "return-the-maximum-difference-between-two-values", + "return-the-maximum-temperature-from-each-room", + "return-the-microsecond-of-a-relative-duration", + "return-the-microsecond-of-a-time-value", + "return-the-millisecond-of-a-relative-duration", + "return-the-millisecond-of-the-time-value", + "return-the-minute-of-a-relative-duration", + "return-the-minute-of-a-time-value", + "return-the-mode-of-each-input-table", + "return-the-modulo-of-two-values", + "return-the-month-of-a-relative-duration", + "return-the-month-of-a-time-value", + "return-the-nanosecond-for-a-relative-duration", + "return-the-nanosecond-for-a-time-value", + "return-the-natural-logarithm-and-sign-of-a-gamma-function", + "return-the-natural-logarithm-of-a-value", + "return-the-natural-logarithm-of-values-near-zero", + "return-the-nearest-integer-less-than-a-value", + "return-the-newest-points-first", + "return-the-newest-points-first-and-include-a-group-by-time-clause", + "return-the-next-possible-float-value", + "return-the-normalize-fraction-and-integral-of-a-value", + "return-the-nth-row", + "return-the-number-of-times-that-values-in-a-series-change", + "return-the-order-n-bessel-function-of-a-value", + "return-the-order-one-bessel-function-of-a-value", + "return-the-order-zero-bessel-function-of-a-value", + "return-the-quarter-for-a-relative-duration", + "return-the-quarter-for-a-time-value", + "return-the-remainder-of-division-between-two-values", + "return-the-row-with-the-lowest-value-in-each-input-table", + "return-the-row-with-the-maximum-value-from-each-input-table", + "return-the-row-with-the-maximum-value-in-each-input-table", + "return-the-row-with-the-minimum-value", + "return-the-running-total-of-values-in-each-table", + "return-the-s2-cell-level-of-an-s2-cell-id-token", + "return-the-second-of-a-relative-duration", + "return-the-second-of-a-time-value", + "return-the-sine-and-cosine-of-a-value", + "return-the-sine-of-a-radian-value", + "return-the-skew-of-input-tables", + "return-the-skew-of-values", + "return-the-spread-of-values", + "return-the-square-root-of-a-value", + "return-the-standard-deviation-in-input-tables", + "return-the-standard-deviation-of-values-in-each-table", + "return-the-start-time-of-each-time-interval", + "return-the-string-representation-of-a-dictionary", + "return-the-string-representation-of-a-record", + "return-the-string-representation-of-an-array", + "return-the-sum-of-each-input-table", + "return-the-sum-of-values-in-each-table", + "return-the-tangent-of-a-radian-value", + "return-the-time-an-influxdb-task-last-successfully-ran", + "return-the-time-for-a-given-relative-duration", + "return-the-time-for-a-given-time", + "return-the-time-spent-in-a-specified-state", + "return-the-total-distance-travelled-in-miles", + "return-the-total-distance-travelled-per-input-table", + "return-the-utc-offset-for-chicagos-time-zone", + "return-the-week-of-the-year", + "return-the-week-of-the-year-using-a-relative-duration", + "return-the-year-for-a-relative-duration", + "return-the-year-for-a-time-value", + "return-unique-values-from-input-tables", + "return-values", + "return-values-in-the-50th-percentile-of-each-input-table", + "returns", + "returns-the-following", + "returns-the-following-stream-of-tables", + "reverse", + "reverse_dns", + "review-1x-user-privileges", + "review-and-resolve-plan-limit-overages", + "review-cluster-configuration-tables", + "review-contribution-guidelines", + "review-http-status-codes", + "review-open-source-license", + "review-production-installation-configurations", + "review-rejected-points", + "review-requirements", + "review-tags", + "revoke", + "revoke-a-database-token", + "revoke-a-management-token", + "revoke-access-from-a-management-token", + "revoke-access-from-a-token-and-skip-confirmation", + "revoke-access-from-multiple-management-tokens", + "revoke-administrative-privileges-from-an-admin-user", + "revoke-an-admin-token", + "revoke-multiple-database-tokens", + "revoke-read-write-or-all-database-privileges-from-an-existing-user", + "revoked-tokens-are-included-in-output", + "revoked-tokens-are-included-when-listing-management-tokens", + "revoked-tokens-are-included-when-listing-tokens", + "revoking-a-token-is-immediate-and-cannot-be-undone", + "rewritten-riemann-plugin", + "rfc3339-timestamp", + "rfc3339-to-unix-nanosecond", + "rfc3339_date_time_string", + "rfc3339_like_date_time_string", + "rfc3339nano-timestamp", + "rhajek-package", + "riak", + "riemann", + "riemann_listener", + "right", + "right-input", + "right-outer-join", + "right-outer-join-example", + "right-outer-join-result", + "right-outer-join-results", + "rohansreerama5-package", + "role-based-access-controls-rbac", + "roles", + "roll-back-to-a-previous-version", + "room", + "roomid", + "root-configuration-options", + "rotate-revoked-tokens", + "round", + "round-a-value-to-the-nearest-integer", + "round-a-value-to-the-nearest-whole-number", + "round-a-value-up-to-the-nearest-integer", + "round-field-values-associated-with-a-field-key", + "round-field-values-associated-with-a-field-key-and-include-several-clauses", + "round-field-values-associated-with-each-field-key-in-a-measurement", + "round-float-values", + "round-float-values-before-converting-to-integers", + "round-float-values-before-converting-to-uintegers", + "router", + "router-latency", + "router-scaling-strategies", + "routes", + "routing-key", + "routingkey", + "row", + "row-template", + "row-template-file", + "row-template-file-1", + "row-templates", + "row_number", + "rowkey", + "rows", + "rp", + "rpad", + "rpc-enterprise-only", + "rpccalls", + "rpcfailures", + "rpcreadbytes", + "rpcretries", + "rpcwritebytes", + "rpm-package-upgrade", + "rsa-key-size", + "rtrim", + "ruby", + "rules", + "run", + "run-a-query-from-a-file", + "run-a-server-in-specific-modes", + "run-a-server-specifically-for-compacting-data", + "run-a-show-databases-query", + "run-a-show-field-keys-query-with-the-from-clause", + "run-a-show-field-keys-query-with-the-on-clause", + "run-a-show-field-keys-query-without-the-on-clause", + "run-a-show-measurements-query-with-several-clauses-i", + "run-a-show-measurements-query-with-several-clauses-ii", + "run-a-show-measurements-query-with-the-on-clause", + "run-a-show-measurements-query-without-the-on-clause", + "run-a-show-retention-policies-query-with-the-on-clause", + "run-a-show-retention-policies-query-without-the-on-clause", + "run-a-show-series-query-limited-by-time", + "run-a-show-series-query-with-several-clauses", + "run-a-show-series-query-with-the-on-clause", + "run-a-show-series-query-without-the-on-clause", + "run-a-show-tag-keys-query-with-a-with-key-in-clause", + "run-a-show-tag-keys-query-with-several-clauses", + "run-a-show-tag-keys-query-with-the-on-clause", + "run-a-show-tag-keys-query-without-the-on-clause", + "run-a-show-tag-values-query-with-several-clauses", + "run-a-show-tag-values-query-with-the-on-clause", + "run-a-show-tag-values-query-without-the-on-clause", + "run-a-single-telegraf-configuration-and-output-metrics-to-stdout", + "run-a-task", + "run-a-task-from-the-influxdb-ui", + "run-a-task-with-the-influx-cli", + "run-a-task-with-the-influxdb-api", + "run-custom-preprocessing-code", + "run-in-admin-mode", + "run-in-query-mode", + "run-in-query-or-admin-mode", + "run-influxd-version-in-your-terminal", + "run-influxd-with-tls-flags", + "run-influxdb-3-core-with-debug-logging-using-log_filter", + "run-influxdb-3-enterprise-with-debug-logging-using-log_filter", + "run-influxdb-3-with-debug-logging-using-log_filter", + "run-influxdb-cli-commands-in-a-container", + "run-influxdb-directly", + "run-influxdb-on-macos-catalina", + "run-influxdb-on-macos-ventura", + "run-initial-setup-process", + "run-interval", + "run-interval--1s", + "run-kapacitor-with-custom-configuration-settings", + "run-kapacitor-with-default-settings", + "run-meta-nodes-on-separate-servers", + "run-queries-at-multiple-load-scales", + "run-show-field-keys-with-the-from-clause", + "run-show-field-keys-with-the-on-clause", + "run-show-measurements-with-several-clauses-i", + "run-show-measurements-with-several-clauses-ii", + "run-show-measurements-with-the-on-clause", + "run-show-series-with-several-clauses", + "run-show-series-with-the-on-clause", + "run-show-tag-keys-with-a-with-key-in-clause", + "run-show-tag-keys-with-several-clauses", + "run-show-tag-keys-with-the-on-clause", + "run-show-tag-values-with-the-on-clause", + "run-telegraf-as-a-background-service", + "run-telegraf-but-only-enable-specific-plugins", + "run-telegraf-in-your-terminal", + "run-telegraf-with-all-plugins-defined-in-configuration-file", + "run-telegraf-with-pprof", + "run-the-application", + "run-the-custom-builder-to-create-a-telegraf-binary", + "run-the-define-template-command", + "run-the-example", + "run-the-example-to-write-and-query-data", + "run-the-influxdb-3-core-server-with-extra-verbose-logging", + "run-the-influxdb-3-enterprise-server-with-extra-verbose-logging", + "run-the-influxdb-3-explorer-docker-container", + "run-the-influxdb-3-explorer-query-interface-beta", + "run-the-influxdb-3-server", + "run-the-influxdb-3-server-with-extra-verbose-logging", + "run-the-machine-data-generator", + "run-the-object-store-in-a-separate-namespace-or-outside-of-kubernetes", + "running-influxdb-directly", + "running-kapacitor-with-the-udf", + "runningstate", + "runtime", + "runtime-package", + "rust", + "s", + "s2-cell-ids", + "s2cellidlevel", + "s2geo", + "s3-object-store", + "s7comm", + "salesforce", + "saml-certificate-rotation", + "sample", + "sample-configuration", + "sample-configuration-1", + "sample-data", + "sample-data-1", + "sample-data-community-template-url", + "sample-data-series", + "sample-every-other-result", + "sample-iot-application-and-code-snippets-for-nodejs", + "sample-iot-application-and-code-snippets-for-python", + "sample-ldap-configuration", + "sample-package", + "sample-query", + "sample-sensor-data", + "sample-with-a-group-by-time-clause", + "sampledata-package", + "sap-hana-data-source-name", + "sap-hana-to-flux-data-type-conversion", + "sasl-access-token", + "sasl-extensions", + "sasl-gssapi-auth-type", + "sasl-gssapi-disable-pafxfast", + "sasl-gssapi-kerberos-config-path", + "sasl-gssapi-key-tab-path", + "sasl-gssapi-realm", + "sasl-gssapi-service-name", + "sasl-mechanism", + "sasl-oauth-client-id", + "sasl-oauth-client-secret", + "sasl-oauth-scopes", + "sasl-oauth-service", + "sasl-oauth-tenant-id", + "sasl-oauth-token-expiry-margin", + "sasl-oauth-token-url", + "sasl-password", + "sasl-username", + "sasl-version", + "save-as-csv", + "save-notebook-appears-before-first-save", + "save-telegraf-configurations", + "save-time-with-stacks", + "save-your-cell", + "save-your-query-as-a-dashboard-cell-or-task", + "save-your-work", + "saving-diamond-metrics-into-influxdb", + "scala", + "scalar-subqueries", + "scale", + "scale-available-memory", + "scale-components-in-your-cluster", + "scale-your-catalog-and-object-store", + "scale-your-cluster-as-a-whole", + "scale-your-influxdb-cluster", + "scale-your-machines-disk-capacity", + "scaling-strategies", + "scatter", + "scatter-behavior", + "scatter-controls", + "scatter-examples", + "scenario", + "scenarios", + "schedule-and-coverage", + "schedule-every", + "scheduled-events-example", + "scheduling-and-coverage", + "schema", + "schema-1", + "schema-2", + "schema-3", + "schema-4", + "schema-differences", + "schema-exploration", + "schema-information", + "schema-information-is-not-available", + "schema-on-write", + "schema-package", + "schema-pane", + "schema-recommendations", + "schema-restrictions", + "schemaless-design", + "scientific", + "scientific-notation", + "scrape", + "scrape-data-using-influxdb-scrapers", + "scrape-influxdb-oss-internal-metrics", + "scrape-prometheus-metrics", + "scrapers-total", + "scraping-tools-and-parsing-format", + "script-editor", + "script-pane", + "search-and-filter-logs", + "search-btn", + "season-1", + "season-2", + "season-3", + "season-4", + "season-5", + "season-6", + "season-7", + "seasonality", + "seasonality-1", + "second", + "second-whitespace", + "secret", + "secret-store", + "secret-stores", + "secret-stores-1", + "secret-stores-2", + "secrets-package", + "section/Authentication/BasicAuthentication", + "section/Authentication/QuerystringAuthentication", + "section/Authentication/TokenAuthentication", + "secure-by-default", + "secure-communication", + "secure-influxdb-and-kapacitor", + "secure-kapacitor-and-chronograf", + "secure-software-development-life-cycle-sdlc", + "secure-your-host", + "security", + "security-1", + "security-assessments", + "security-enhancements", + "security-features", + "security-level", + "security-level--none", + "security-updates", + "security-updates-1", + "security-updates-2", + "see-how-groups-frame-units-work", + "see-how-range-frame-units-work-with-interval-offsets", + "see-how-range-frame-units-work-with-numeric-offsets", + "see-how-rows-frame-units-work", + "seed", + "select", + "select-a-field-and-perform-basic-arithmetic", + "select-a-field-from-a-measurement-and-perform-basic-arithmetic", + "select-a-field-tag-and-timestamp-from-a-measurement", + "select-a-method-for-calculating-the-median", + "select-a-method-for-calculating-the-quantile", + "select-a-sample-of-the-field-values-associated-with-a-field-key", + "select-a-sample-of-the-field-values-associated-with-a-field-key-and-include-several-clauses", + "select-a-sample-of-the-field-values-associated-with-a-field-key-and-the-relevant-tags-and-fields", + "select-a-sample-of-the-field-values-associated-with-each-field-key-in-a-measurement", + "select-a-sample-of-the-field-values-associated-with-each-field-key-that-matches-a-regular-expression", + "select-a-specific-field-from-a-measurement-and-perform-basic-arithmetic", + "select-a-specific-field-within-relative-time-bounds", + "select-a-timezone", + "select-all-data-from-a-fully-qualified-measurement", + "select-all-data-from-a-fully-qualified-measurement-with-default-retention-policy", + "select-all-data-from-a-measurement-in-a-particular-database", + "select-all-data-from-more-than-one-measurement", + "select-all-data-in-a-measurement", + "select-all-data-in-a-measurement-within-time-bounds", + "select-all-fields-and-tags-from-a-measurement", + "select-all-fields-and-tags-from-a-single-measurement", + "select-all-fields-from-a-measurement", + "select-all-fields-from-a-single-measurement", + "select-clause", + "select-clause-behaviors", + "select-clause-subqueries", + "select-clause-with-correlated-subquery", + "select-data-based-on-tag-value", + "select-data-based-on-tag-value-within-time-bounds", + "select-data-based-on-the-relationship-between-columns", + "select-data-from-a-relative-time-range", + "select-data-from-a-specific-time-range", + "select-data-from-an-ad-hoc-table", + "select-data-from-specific-hours", + "select-data-that-have-a-specific-field-key-value-and-perform-basic-arithmetic", + "select-data-that-have-a-specific-string-field-key-value", + "select-data-that-have-a-specific-tag-key-value", + "select-data-that-have-specific-field-key-values", + "select-data-that-have-specific-field-key-values-and-tag-key-values", + "select-data-that-have-specific-timestamps", + "select-data-with-a-specific-field-key-value-and-perform-basic-arithmetic", + "select-data-with-a-specific-string-field-key-value", + "select-data-with-a-specific-tag-key-value", + "select-data-with-a-specific-tag-value", + "select-data-with-field-values-above-a-threshold-and-a-specific-tag-value", + "select-data-with-specific-field-key-values", + "select-data-with-specific-field-key-values-and-tag-key-valuest", + "select-field-values-above-a-threshold", + "select-field-values-based-on-arithmetic", + "select-fifth-percentile-field-value-associated-with-each-field-key-that-matches-a-regular-expression", + "select-local-time-or-utc-coordinated-universal-time", + "select-only-columns-you-need", + "select-query-includes-group-by-time", + "select-specific-field-values", + "select-specific-fields-and-tags-from-a-measurement", + "select-specific-tags-and-fields-from-a-measurement", + "select-specific-tags-and-fields-from-a-measurement-and-provide-their-identifier-type", + "select-specific-tags-and-fields-from-a-single-measurement", + "select-specific-tags-and-fields-from-a-single-measurement-and-provide-their-identifier-type", + "select-specific-times", + "select-statement", + "select-statement-and-from-clause", + "select-statement-examples", + "select-subquery-examples", + "select-subquery-syntax", + "select-the-50th-percentile-value-from-a-field", + "select-the-50th-percentile-value-from-a-field-within-time-windows-grouped-by-time", + "select-the-50th-percentile-value-from-each-field", + "select-the-50th-percentile-value-from-field-keys-that-match-a-regular-expression", + "select-the-bottom-field-value-associated-with-a-field-key-for-two-tags", + "select-the-bottom-field-value-for-two-unique-tag-values", + "select-the-bottom-field-values-for-unique-tag-values-and-within-time-windows-grouped-by-time", + "select-the-bottom-four-field-values-associated-with-a-field-key-and-the-relevant-tags-and-fields", + "select-the-bottom-three-field-values-and-the-tag-value-associated-with-each", + "select-the-bottom-three-field-values-associated-with-a-field-key", + "select-the-bottom-three-field-values-associated-with-a-field-key-and-include-several-clauses", + "select-the-bottom-three-values-of-a-field", + "select-the-fifth-percentile-field-value-associated-with-a-field-key", + "select-the-fifth-percentile-field-value-associated-with-each-field-key-in-a-measurement", + "select-the-fifth-percentile-field-values-associated-with-a-field-key-and-the-relevant-tags-and-fields", + "select-the-first-field-value-associated-with-a-field-key", + "select-the-first-field-value-associated-with-a-field-key-and-include-several-clauses", + "select-the-first-field-value-associated-with-each-field-key-in-a-measurement", + "select-the-first-field-value-associated-with-each-field-key-that-matches-a-regular-expression", + "select-the-first-value-associated-with-a-field-key-and-the-relevant-tags-and-fields", + "select-the-first-value-for-a-field", + "select-the-first-value-from-a-field-within-time-windows-grouped-by-time", + "select-the-first-value-from-each-field", + "select-the-first-value-from-field-keys-that-match-a-regular-expression", + "select-the-last-field-value-associated-with-a-field-key-and-include-several-clauses", + "select-the-last-field-value-associated-with-a-field-key-and-the-relevant-tags-and-fields", + "select-the-last-field-value-associated-with-each-field-key-that-matches-a-regular-expression", + "select-the-last-field-values-associated-with-a-field-key", + "select-the-last-field-values-associated-with-each-field-key-in-a-measurement", + "select-the-last-value-for-a-field", + "select-the-last-value-from-a-field-within-time-windows-grouped-by-time", + "select-the-last-value-from-each-field", + "select-the-last-value-from-field-keys-that-match-a-regular-expression", + "select-the-maximum-field-value-associated-with-a-field-key", + "select-the-maximum-field-value-associated-with-a-field-key-and-include-several-clauses", + "select-the-maximum-field-value-associated-with-a-field-key-and-the-relevant-tags-and-fields", + "select-the-maximum-field-value-associated-with-each-field-key-in-a-measurement", + "select-the-maximum-field-value-associated-with-each-field-key-that-matches-a-regular-expression", + "select-the-maximum-value-from-a-field", + "select-the-maximum-value-from-a-field-within-time-windows-grouped-by-time", + "select-the-maximum-value-from-each-field", + "select-the-maximum-value-from-field-keys-that-match-a-regular-expression", + "select-the-minimum-field-value-associated-with-a-field-key", + "select-the-minimum-field-value-associated-with-a-field-key-and-include-several-clauses", + "select-the-minimum-field-value-associated-with-a-field-key-and-the-relevant-tags-and-fields", + "select-the-minimum-field-value-associated-with-each-field-key-in-a-measurement", + "select-the-minimum-field-value-associated-with-each-field-key-that-matches-a-regular-expression", + "select-the-minimum-value-from-a-field", + "select-the-minimum-value-from-a-field-within-time-windows-grouped-by-time", + "select-the-minimum-value-from-each-field", + "select-the-minimum-value-from-field-keys-that-match-a-regular-expression", + "select-the-time-range", + "select-the-top-field-value-associated-with-a-field-key-for-two-tags", + "select-the-top-field-value-for-two-unique-tag-values", + "select-the-top-field-values-for-unique-tag-values-and-within-time-windows-grouped-by-time", + "select-the-top-four-field-values-associated-with-a-field-key-and-the-relevant-tags-and-fields", + "select-the-top-three-field-values-and-the-tag-value-associated-with-each", + "select-the-top-three-field-values-associated-with-a-field-key", + "select-the-top-three-field-values-associated-with-a-field-key-and-include-several-clauses", + "select-the-top-three-values-of-a-field", + "select-the-twentieth-percentile-field-value-associated-with-a-field-key-and-include-several-clauses", + "select-time-range", + "select-timezone", + "selecting-a-measurement-without-specifying-a-time-range", + "selecting-tag-keys-in-the-select-clause", + "selecting-tag-keys-in-the-select-statement", + "selection-list", + "selector", + "selector-examples", + "selector-functions", + "selector-functions-in-use", + "selector-functions-may-return-fewer-points-than-expected", + "selector-struct-schema", + "selector_first", + "selector_last", + "selector_max", + "selector_min", + "selectors", + "selectors-and-aggregates", + "self-signed-certificates", + "semantic-error---double-quote-a-boolean-field-value", + "semantic-error---double-quote-a-measurement-name", + "send-a-message-to-an-mqtt-endpoint", + "send-a-message-to-an-mqtt-endpoint-using-input-data", + "send-a-message-to-slack-using-a-slack-webhook", + "send-a-message-to-slack-using-chatpostmessage-api", + "send-a-notification-to-pagerduty-or-http", + "send-a-notification-to-slack", + "send-a-push-notification-note-to-pushbullet", + "send-a-push-notification-to-pushbullet", + "send-a-request-body-that-is-too-large", + "send-a-write-request", + "send-alert-data-to-a-tcp-endpoint-from-a-defined-handler", + "send-alert-data-to-a-tcp-endpoint-from-a-tickscript", + "send-alert-email", + "send-alert-to-teams-channel-in-configuration-file", + "send-alert-to-teams-channel-with-webhook-overrides-configuration-file", + "send-alerts", + "send-alerts-to-a-hipchat-room-from-a-tickscript", + "send-alerts-to-a-kafka-cluster-from-a-defined-handler", + "send-alerts-to-a-kafka-cluster-from-a-tickscript", + "send-alerts-to-a-telegram-bot-from-a-tickscript", + "send-alerts-to-an-alerta-room-from-a-defined-handler", + "send-alerts-to-an-alerta-room-from-a-tickscript", + "send-alerts-to-an-mqtt-broker-from-a-defined-handler", + "send-alerts-to-an-mqtt-broker-from-a-tickscript", + "send-alerts-to-an-victorops-room-from-a-defined-handler", + "send-alerts-to-an-victorops-room-from-a-tickscript", + "send-alerts-to-discord-from-a-defined-handler", + "send-alerts-to-discord-from-a-tickscript", + "send-alerts-to-opsgenie-from-a-defined-handler", + "send-alerts-to-opsgenie-from-a-tickscript", + "send-alerts-to-pagerduty-from-a-defined-handler", + "send-alerts-to-pagerduty-from-a-tickscript", + "send-alerts-to-pushover-from-a-defined-handler", + "send-alerts-to-pushover-from-a-tickscript", + "send-alerts-to-sensu-from-a-defined-handler", + "send-alerts-to-sensu-from-a-tickscript", + "send-alerts-to-slack-from-a-defined-handler", + "send-alerts-to-slack-from-a-tickscript", + "send-alerts-to-teams-from-a-defined-handler", + "send-alerts-to-teams-from-a-tickscript", + "send-alerts-to-the-hipchat-room-from-a-defined-handler", + "send-alerts-to-the-hipchat-room-set-in-the-configuration-file", + "send-alerts-to-the-hipchat-room-set-in-the-tickscript", + "send-alerts-to-the-telegram-bot-from-a-defined-handler", + "send-alerts-to-the-telegram-chat-id-set-in-the-configuration-file", + "send-alerts-to-the-telegram-chat-id-set-in-the-tickscript", + "send-alerts-to-zenoss-from-a-defined-handler", + "send-alerts-to-zenoss-from-a-tickscript", + "send-alerts-using-data-in-influxdb", + "send-an-event-to-pagerduty", + "send-an-http-post-request-for-each-row", + "send-authenticated-api-requests-with-postman", + "send-critical-alerts-to-alerta", + "send-critical-alerts-to-bigpanda", + "send-critical-events-to-servicenow", + "send-critical-events-to-victorops", + "send-critical-events-to-zenoss", + "send-critical-status-events-to-sensu", + "send-critical-status-notifications-to-slack", + "send-critical-statuses-to-a-discord-channel", + "send-critical-statuses-to-a-microsoft-teams-channel", + "send-critical-statuses-to-a-pagerduty-endpoint", + "send-critical-statuses-to-a-telegram-channel", + "send-critical-statuses-to-opsgenie", + "send-data-collected-by-telegraf-to-your-monitor", + "send-data-in-json-body-with-httppost", + "send-data-to-an-mqtt-broker", + "send-data-to-kafka", + "send-email-alerts-using-the-totemplate-option", + "send-influxdata-output-artifacts", + "send-multiple-queries", + "send-notifications-when-usage-exceeds-an-amount", + "send-push-notifications-to-pushbullet", + "send-status-alerts-to-a-slack-endpoint", + "send-the-last-reported-status-to-a-microsoft-teams-channel", + "send-the-last-reported-status-to-a-opsgenie", + "send-the-last-reported-status-to-a-url", + "send-the-last-reported-status-to-discord", + "send-the-last-reported-status-to-sensu", + "send-the-last-reported-status-to-telegram", + "send-the-last-reported-status-to-webex-teams", + "send-the-last-reported-value-and-incident-type-to-servicenow", + "send-the-last-reported-value-and-incident-type-to-victorops", + "send-the-last-reported-value-and-severity-to-zenoss", + "send-the-last-reported-value-and-status-to-alerta", + "send-the-last-reported-value-and-status-to-bigpanda", + "sending-snmp-traps-from-a-tickscript", + "sending-subscription-data-to-multiple-hosts", + "sensorID", + "sensors", + "sensu", + "sensu-api-key-authentication", + "sensu-package", + "separate-wal-and-data-directories", + "separation-of-environments-and-duties", + "separator", + "separator--", + "september-2021", + "september-2022", + "serializer-plugin-updates", + "serializer-updates", + "serializer-updates-1", + "serializers", + "serializers-1", + "serializers-2", + "serializers-3", + "serializers-4", + "series", + "series-and-series-cardinality", + "series-and-series-cardinality-1", + "series-cardinality", + "series-diagram-wrapper flux", + "series-file", + "series-file-compaction", + "series-file-compaction-on-startup", + "series-file-compactions", + "series-id-set-cache-size", + "series-id-set-cache-size--100", + "series-key", + "series-per-db", + "seriescreate", + "server", + "server-configuration-options", + "server-management", + "server-side-template-summarization-and-validation", + "servererror", + "serverless-urls", + "servers", + "service", + "service-discovery-and-metric-scraping", + "service-input-plugin", + "service-key", + "service-tests", + "servicename", + "servicenametag", + "servicenow", + "servicenow-metrics", + "servicenow-package", + "services", + "session-length", + "session-renew-disabled", + "session-service-call-total", + "session-service-duration", + "session-service-error-total", + "set", + "set-a-basic-authentication-header-in-an-http-post-request", + "set-a-column-to-a-specific-string-value", + "set-a-column-value-to-a-static-value", + "set-a-dbrp-mapping-as-default", + "set-a-password-for-a-v1-authorization", + "set-a-secret-using-a-non-default-configuration-location", + "set-a-secret-using-the-default-configuration-location", + "set-certificate-file-permissions", + "set-configurations-for-your-oauth-provider", + "set-createempty-to-false", + "set-custom-default-chronograf-configuration-options", + "set-debug--true-in-your-settings", + "set-environment-variables", + "set-environment-variables-for-a-component", + "set-execution-mode", + "set-kapacitor-log-level-to-error", + "set-namespaceoverride-if-using-a-namespace-other-than-influxdb", + "set-the-location-option-using-a-fixed-location", + "set-the-location-option-using-a-timezone-based-location", + "set-timeouts-specific-to-your-workload", + "set-up-1x-monitoring-dashboards", + "set-up-a-disk-usage-alert", + "set-up-a-flux-task-database-in-influxdb", + "set-up-a-github-repository", + "set-up-a-kubernetes-ingress-controller", + "set-up-a-telegram-bot", + "set-up-a-trigger", + "set-up-an-influxdb-cloud-account-compatible-with-thingworx", + "set-up-and-use-single-sign-on-sso", + "set-up-authentication", + "set-up-authentication-and-authorization", + "set-up-configure-and-start-the-data-node-services", + "set-up-configure-and-start-the-data-services", + "set-up-configure-and-start-the-meta-service", + "set-up-configure-and-start-the-meta-services", + "set-up-data-nodes", + "set-up-database-and-retention-policy-dbrp-mapping", + "set-up-docker-configuration", + "set-up-docker-for-superset", + "set-up-docker-for-superset-and-flight-sql", + "set-up-event-handler", + "set-up-fine-grained-authorization", + "set-up-github-actions-or-circleci", + "set-up-guild", + "set-up-https-in-an-influxdb-enterprise-cluster", + "set-up-https-with-a-ca-certificate", + "set-up-https-with-a-self-signed-certificate", + "set-up-influx-cli-connection-configurations", + "set-up-influxdb", + "set-up-influxdb-enterprise-authorizations", + "set-up-influxdb-enterprise-for-monitoring", + "set-up-influxdb-interactively-with-prompts-for-required-information", + "set-up-influxdb-oss-for-monitoring", + "set-up-influxdb-with-all-required-information-and-skip-confirmation", + "set-up-ingress-tls", + "set-up-internal-kapacitor-authorizations", + "set-up-kapacitor-for-influxdb-cloud-or-2x", + "set-up-local-or-attached-storage", + "set-up-logging", + "set-up-meta-nodes", + "set-up-monitoring", + "set-up-prerequisites", + "set-up-ptc-thingworx", + "set-up-security-organizations-and-users", + "set-up-teams", + "set-up-telegraf", + "set-up-the-band-plot-visualization-in-the-script-editor", + "set-up-the-band-visualization", + "set-up-the-band-visualization-in-the-data-explorer", + "set-up-the-influx-cli", + "set-up-the-map-visualization", + "set-up-the-map-visualization-1", + "set-up-the-migration", + "set-up-the-processing-engine", + "set-up-using-docker-compose-secrets", + "set-up-victorops", + "set-up-your-identity-provider", + "set-up-your-initial-user", + "set-up-your-kubernetes-cluster", + "set-up-your-object-store", + "set-up-your-postgresql-compatible-database", + "set-up-your-project", + "set-values-for-multiple-columns", + "set-your-token-for-authentication", + "setting-access-log-status-filters-using-configuration-settings", + "setting-access-log-status-filters-using-environment-variables", + "setting-the-log-level-to-debug", + "setting-up-a-batch-cpu-alert", + "setting-up-a-live-stream-cpu-alert", + "settings-for-batching", + "settings-for-the-tsm-engine", + "setup", + "setup-configure-and-deploy-influxdb-clustered", + "setup-description", + "setup-tip", + "severity", + "severity-colors", + "severity-format", + "severity-map", + "sflow", + "sha224", + "sha256", + "sha384", + "sha512", + "shape-data", + "shape-data-to-work-with-the-geo-package", + "shape-geo-temporal-data", + "shard", + "shard-compaction", + "shard-compaction-related-configuration-settings", + "shard-data-size", + "shard-deletion", + "shard-diagram", + "shard-disk-size", + "shard-dropped-points", + "shard-duration", + "shard-fields-created", + "shard-files", + "shard-group", + "shard-group-diagram", + "shard-group-duration", + "shard-group-duration-configuration-options", + "shard-group-duration-for-backfilling", + "shard-group-duration-management", + "shard-group-duration-overview", + "shard-group-duration-recommendations", + "shard-group-duration-tradeoffs", + "shard-groups", + "shard-life-cycle", + "shard-movement", + "shard-precreation", + "shard-precreation-related-configuration-settings", + "shard-precreation-settings", + "shard-reader-timeout", + "shard-series", + "shard-status-http-endpoint", + "shard-write-request-timeouts", + "shard-writer-timeout", + "shard-writes", + "shard-writes-with-errors", + "shards", + "shardstatus", + "share-a-notebook", + "share-data-across-plugins", + "share-notebook", + "share-your-influxdb-templates", + "shared-secret", + "shared-secret--", + "shift", + "shift-a-timestamp-forward-or-backward", + "shift-bits-left-in-an-integer", + "shift-bits-left-in-an-unsigned-integer", + "shift-bits-left-in-integers-in-a-stream-of-tables", + "shift-bits-left-in-unsigned-integers-in-a-stream-of-tables", + "shift-bits-right-in-an-integer", + "shift-bits-right-in-an-unsigned-integer", + "shift-bits-right-in-integers-in-a-stream-of-tables", + "shift-bits-right-in-unsigned-integers-in-a-stream-of-tables", + "shift-timestamps-backward-in-time", + "shift-timestamps-forward-in-time", + "short-circuit-evaluation", + "short-shard-group-duration", + "shorthand-and-longhand-flags", + "should-you-migrate", + "show", + "show-a-users-database-privileges", + "show-all", + "show-all-existing-users-and-their-admin-status", + "show-all-run-logs-for-a-flux-task", + "show-all-run-logs-for-a-task", + "show-all-run-logs-for-a-task-api", + "show-cardinality", + "show-columns", + "show-continuous-queries", + "show-current-value-and-historical-values", + "show-databases", + "show-diagnostics", + "show-diagnostics-measurement-details", + "show-diagnostics-statement", + "show-field-key-cardinality", + "show-field-keys", + "show-field-keys-and-field-type-discrepancies", + "show-grants", + "show-human-readable-current-value", + "show-information-about-a-task", + "show-information-about-a-task-in-the-context-of-a-replay", + "show-information-about-distinct-value-caches", + "show-information-about-last-value-caches", + "show-logs-for-a-specific-flux-task-run", + "show-logs-for-a-specific-flux-task-run-api", + "show-measurement-cardinality", + "show-measurement-key-cardinality", + "show-measurements", + "show-or-hide-the-log-status-histogram", + "show-queries", + "show-retention-policies", + "show-secret-values-when-listing-secrets-and-secret-stores", + "show-series", + "show-series-cardinality", + "show-series-exact-cardinality", + "show-shard-groups", + "show-shards", + "show-stats", + "show-stats-1", + "show-stats-for-component", + "show-stats-for-indexes", + "show-stats-measurement-details", + "show-stats-statement", + "show-subscriptions", + "show-tables", + "show-tag-key-cardinality", + "show-tag-keys", + "show-tag-values", + "show-tag-values-cardinality", + "show-template", + "show-topic", + "show-topic-handler", + "show-users", + "shutting-down-the-stack", + "side-effects", + "sideload", + "sideload-source-files", + "sideloadnode-example", + "sigma", + "sign", + "sign-in", + "sign-influxdata-contributor-license-agreement-cla", + "sign-up", + "signalfx", + "signum", + "silent", + "similar-functions", + "simple", + "simple-expressions", + "simple-setup", + "sin", + "single-and-double-quotes", + "single-domain-certificates-signed-by-a-certificate-authority-ca", + "single-node-or-cluster", + "single-quotes", + "single-stat", + "single-stat-behavior", + "single-stat-controls", + "single-stat-examples", + "single-telegraf-configuration", + "single-telegraf-configuration-and-telegraf-configuration-directory", + "singleuse", + "singleuseopen", + "sinh", + "sink-consumer", + "skip-annotation-headers", + "skip-header-lines-in-a-file", + "skip-rows-with-errors", + "skipped-shards", + "slab", + "slack", + "slack-cpu-alerttick", + "slack-cpu-alerttick-1", + "slack-package", + "slack-settings-in-kapacitorconf", + "slack-setup", + "slack_500_errors_dailyyaml", + "slack_cpu_handleryaml", + "slightly-more-setup", + "slimit-clause", + "slurm", + "smart", + "smartctl", + "smoothingfactor", + "smtp", + "snappy-compression", + "snapshotcount", + "snapshotted-wal-files-to-keep", + "snapshotter", + "snmp", + "snmp-agent", + "snmp-trap-data-types", + "snmp_lookup", + "snmp_trap", + "snmptrap", + "snowflake-data-source-name", + "snowflake-to-flux-data-type-conversion", + "socket-package", + "socket_listener", + "socket_writer", + "socketstat", + "soffset-clause", + "soft-delete", + "solr", + "solution", + "solution-1", + "solution-2", + "solution-3", + "solution-4", + "solution-5", + "solution-advantages", + "solution-b1", + "solution-b2", + "solution-disadvantages", + "solution-e1", + "solution-e2", + "solution-e3", + "solution-e4", + "solution-explained", + "solution-overview", + "solutions", + "some-type-of-aggregation", + "sort", + "sort-and-limit", + "sort-and-limit-results", + "sort-by-tags", + "sort-data-by-selection-order", + "sort-data-by-tag-or-field-values", + "sort-data-by-time-with-the-most-recent-first", + "sort-data-with-the-newest-points-first", + "sort-data-with-the-oldest-points-first", + "sort-distinct_caches-system-table-output", + "sort-last_caches-system-table-output", + "sort-orders", + "sort-tags-by-key", + "sort-tags-by-query-priority", + "sort-values-in-ascending-order", + "sortexec", + "sorting-with-null-values", + "sorting-yet-to-be-persisted-data", + "sortpreservingmergeexec", + "source", + "source-1-tags-and-fields", + "source-2-tags-and-fields", + "source-examples", + "source-producer", + "space-values-at-even-time-intervals", + "special-characters", + "special-characters-and-keywords", + "specify-a-time-range-relative-to-a-timestamp", + "specify-a-time-range-relative-to-now", + "specify-a-time-range-with-absolute-time-and-relative-time", + "specify-a-time-range-with-epoch-timestamps", + "specify-a-time-range-with-nanosecond-epoch-timestamps", + "specify-a-time-range-with-relative-time", + "specify-a-time-range-with-rfc3339-date-time-strings", + "specify-a-time-range-with-rfc3339-like-date-time-strings", + "specify-a-time-range-with-second-precision-epoch-timestamps", + "specify-a-timeout", + "specify-authentication-credentials-in-the-connection-string", + "specify-authentication-credentials-in-the-dsn", + "specify-csv-character-encoding", + "specify-hosts-for-writes-and-queries", + "specify-multiple-functions-in-the-select-clause", + "specify-parameters-of-the-aggregate-function", + "specify-role-permissions", + "specify-that-the-key-is-a-field", + "specify-that-the-key-is-a-tag", + "specify-the-encoding-of-the-influxdb-template-to-summarize", + "specify-the-encoding-of-the-influxdb-template-to-validate", + "specify-the-format-of-the-server-responses-with--format", + "specify-the-output-field-key", + "specify-the-output-field-key-for-multiple-functions", + "specify-timestamp-precision-column", + "specify-timestamp-precision-csv", + "specify-timestamp-precision-json", + "specify-timestamp-precision-or-format", + "specify-your-backup-format", + "specify-your-influxdb-url", + "specifying-dbrp-implicitly", + "specifying-paths-to-the-_series-and-index-directories", + "specifying-paths-to-the-_series-directory-and-an-index-file", + "specifying-paths-to-the-_series-directory-and-multiple-index-files", + "split", + "split-a-string-into-an-array-of-substrings", + "split_part", + "splunk-metrics", + "spread", + "sql", + "sql-and-arrow-data-types", + "sql-data-source-names", + "sql-databases", + "sql-output", + "sql-package", + "sql-query-basics", + "sql-reference-documentation", + "sql-server-ado-authentication", + "sql-server-data-source-name", + "sql-server-to-flux-data-type-conversion", + "sql-wildcard-characters", + "sqlite-data-source-name", + "sqlite-path", + "sqlite-to-flux-data-type-conversion", + "sqlserver", + "sqrt", + "square-a-number", + "square-the-value-in-each-row", + "sranka-package", + "srcid", + "ssl-ca", + "ssl-cert", + "ssl-key", + "sso-auth-flow", + "sso-authorization-flow", + "stability-and-compatibility", + "stack_in_use_bytes", + "stack_sys_bytes", + "stackdriver", + "stacked-graph", + "stacked-graph-controls", + "stacked-graph-example", + "stacks", + "standard-and-air-gapped-deployments", + "standard-deployment-with-internet-access", + "standard-deviation-modes", + "standard-format", + "starlark", + "start", + "start-a-vault-server", + "start-an-influxql-shell", + "start-chronograf", + "start-for-free", + "start-in-the-influx-cli-in-flux-mode", + "start-influxdb", + "start-influxdb-and-collect-telegraf-data", + "start-kapacitor", + "start-queries-with-pushdowns", + "start-telegraf", + "start-telegraf-and-verify-data-appears", + "start-the-chronograf-service", + "start-the-data-service", + "start-the-influxql-shell", + "start-the-meta-service", + "start-the-superset-docker-containers", + "start-the-telegraf-service", + "start-the-udf", + "start_sunday", + "startcolumn", + "starting-the-kapacitor-service", + "starts_with", + "startup", + "state", + "state-changes-only", + "statechangesonly", + "statecount", + "stateduration", + "stateful-functions", + "stateless-functions", + "statement-to-permission", + "statements", + "statements-and-clauses", + "statemessage", + "static-datasets", + "static-hostname", + "static-legend", + "static-sample-data-and-bucket-retention-periods", + "statistical-aggregate-functions", + "stats", + "stats-general", + "stats-ingress", + "statsd", + "statsmodels-package", + "status", + "status-codes", + "status-codes-1", + "status-codes-2", + "status-codes-and-responses", + "status-codes-and-responses-1", + "status-codes-and-responses-2", + "statusreq", + "stay-within-the-schema-limits-of-influxdb-cloud-serverless", + "stddev", + "stddev_pop", + "stddev_samp", + "steam-logs-from-the-cpu_alert-tasks", + "steam-pressure-gauge", + "step", + "step-1-download-and-install-chronograf", + "step-1-download-and-install-influxdb", + "step-1-download-and-install-telegraf", + "step-1-download-influx-cli-for-linux", + "step-1-download-influx-cli-for-macos", + "step-1-download-influx-cli-for-windows", + "step-1-enable-authentication", + "step-1-generate-a-self-signed-certificate", + "step-1-install-the-certificate", + "step-1-match-the-trends-of-the-raw-data", + "step-1-truncate-hot-shards", + "step-1-update-the-retention-policy", + "step-2-configure-telegraf", + "step-2-determine-the-seasonal-pattern", + "step-2-enable-authentication", + "step-2-expand-the-downloaded-archive", + "step-2-identify-cold-shards", + "step-2-restart-the-influxdb-service", + "step-2-review-the-tls-configuration-settings", + "step-2-set-certificate-file-permissions", + "step-2-start-chronograf", + "step-2-truncate-hot-shards", + "step-2-unpackage-the-influx-binary", + "step-3-apply-the-holt_winters-function", + "step-3-connect-chronograf-to-the-influxdb-oss-instance", + "step-3-copy-cold-shards", + "step-3-create-an-admin-user", + "step-3-enable-https-in-the-configuration-file", + "step-3-grant-network-access", + "step-3-identify-cold-shards", + "step-3-optional-place-the-binary-in-your-path", + "step-3-restart-the-telegraf-service", + "step-3-review-the-tls-configuration-settings", + "step-3-start-influxdb", + "step-4-confirm-the-copied-shards", + "step-4-confirm-the-telegraf-setup", + "step-4-copy-cold-shards", + "step-4-create-an-admin-user", + "step-4-edit-the-influxdb-source-in-chronograf", + "step-4-enable-https-in-the-influxdb-configuration-file", + "step-4-explore-the-monitoring-data-in-chronograf", + "step-4-learn-influx-cli-commands", + "step-4-macos-catalina-and-newer-authorize-influxdb-binaries", + "step-4-macos-catalina-only-authorize-influxdb-binaries", + "step-4-restart-influxdb", + "step-4-set-up-a-configuration-profile", + "step-5-confirm-the-rebalance", + "step-5-learn-influx-cli-commands", + "step-5-remove-unnecessary-cold-shards", + "step-5-restart-the-influxdb-service", + "step-5-set-up-a-configuration-profile", + "step-5-verify-the-https-setup", + "step-6-confirm-the-rebalance", + "step-6-learn-influx-cli-commands", + "step-6-verify-the-https-setup", + "step-plot", + "step-plot-graph", + "step-plot-graph-controls", + "step-plot-graph-example", + "steps-to-create-a-plugin", + "stomp", + "stop", + "stop-currently-running-queries-with-kill-query", + "stop-reading-and-writing-data", + "stop-traffic-to-the-data-node", + "stop-writes-and-remove-oss", + "stopcolumn", + "stopping-an-influxdb-3-container", + "stopping-the-kapacitor-service", + "storage", + "storage-cache-max-memory-size", + "storage-cache-snapshot-memory-size", + "storage-cache-snapshot-write-cold-duration", + "storage-compact-full-write-cold-duration", + "storage-compact-throughput-burst", + "storage-engine", + "storage-engine-components", + "storage-engine-diagram", + "storage-engine-stability", + "storage-level", + "storage-level-errors", + "storage-level-limits", + "storage-max-concurrent-compactions", + "storage-max-index-log-file-size", + "storage-no-validate-field-size", + "storage-retention-check-interval", + "storage-series-file-max-concurrent-snapshot-compactions", + "storage-series-id-set-cache-size", + "storage-shard-precreator-advance-period", + "storage-shard-precreator-check-interval", + "storage-tsm-use-madv-willneed", + "storage-type-amount-and-configuration", + "storage-usage", + "storage-validate-keys", + "storage-volume-and-iops", + "storage-wal-flush-on-shutdown", + "storage-wal-fsync-delay", + "storage-wal-max-concurrent-writes", + "storage-wal-max-write-delay", + "storage-write-timeout", + "store", + "store-alert-statuses-for-error-counts", + "store-and-retrieve-cached-data", + "store-cached-data-with-expiration", + "store-database", + "store-database--_internal", + "store-enabled", + "store-enabled--true", + "store-internal-metrics-in-an-external-monitor", + "store-interval", + "store-interval--10s", + "store-secrets-in-vault", + "store-secure-tokens-in-a-secret-store", + "store-sensitive-credentials-as-secrets", + "store-the-length-of-string-values", + "store-your-authorization-token-as-an-environment-variable", + "store-your-database-credentials-as-secrets", + "stores", + "strategies-for-improving-query-performance", + "stream", + "stream-all-logs-from-a-task", + "stream-kapacitor-logs", + "stream-kapacitor-logs-filtered-by-tags", + "stream-logs-from-a-task-filtered-by-tags", + "stream-method", + "stream-of-tables", + "stream-or-batch", + "stream-types", + "streamname", + "strict", + "strict-and-non-strict-filtering", + "strict-mode", + "strict-update-and-delete-permissions", + "stricter-input-validation-for-influx-template-commands", + "strictly-filter-data-to-a-specified-region", + "strictly-filter-geotemporal-data-by-region", + "string", + "string-example", + "string-examples", + "string-functions", + "string-lists", + "string-literals", + "string-manipulation-and-data-shaping", + "string-operators", + "string-syntax", + "string-templates", + "string-type-handling", + "string-types", + "string_agg", + "stringable-constraint", + "stringarray", + "strings", + "strings-package", + "strong-passwords", + "strpos", + "structure-results-like-influxql", + "structured-logging", + "subcommands", + "submit-a-flux-query-via-parameter", + "submit-a-flux-query-via-via-stdin", + "submit-custom-date", + "submit-issues-for-unexplained-behaviors-or-errors", + "submit-queries-from-a-file", + "submit-queries-from-a-file-1", + "subqueries", + "subquery", + "subquery-categories", + "subquery-operators", + "subscribe-through-a-cloud-provider", + "subscribe-through-influxdata", + "subscriber", + "subscriber-settings", + "subscription", + "subscription-mode", + "subscription-protocol", + "subscription-protocols", + "subscription-settings", + "subscriptions", + "substituting-for-a-having-clause", + "substituting-for-nested-functions", + "substr", + "substr_index", + "substring", + "substring_index", + "subsystems-and-services", + "subtract-a-duration-from-a-time-value", + "subtract-a-duration-from-a-timestamp", + "subtract-six-hours-from-a-relative-duration", + "subtract-six-hours-from-a-timestamp", + "subtract-two-days-from-one-hour-ago", + "subtractable-constraint", + "subtraction", + "subtraction-rules-for-numeric-types", + "subwritedrop", + "subwriteok", + "successful-request-duration-flight-doget", + "suffix", + "sum", + "summarize-all-influxdb-templates-in-a-directory", + "summarize-an-influxdb-template-from-a-local-file", + "summarize-an-influxdb-template-from-a-url", + "summarize-influxdb-templates-from-multiple-files", + "summarize-query-results-and-data-distribution", + "summarize-system-table-data", + "summarize-system-table-data-in-json-formatted-output", + "summary", + "summary-of-variable-use-between-syntax-sub-spaces", + "summary-table", + "summary-table-1", + "summarycutoff", + "summing-up", + "sumologic", + "supervisor", + "support-for-1x-storage-engine-and-influxdb-1x-compatibility-api", + "support-for-bypassing-identity-provider-configuration-for-databasetoken-management", + "support-for-google-cloud-storage-gcs", + "support-for-http-sources-in-sideloadnode", + "support-for-stream-tasks", + "supported-alert-levels", + "supported-array-types", + "supported-array-types-and-behaviors", + "supported-data-formats", + "supported-data-types", + "supported-database-engines", + "supported-influxql-queries", + "supported-operations", + "supported-operators", + "supported-operators-1", + "supported-operators-2", + "supported-operators-3", + "supported-operators-4", + "supported-parameter-data-types", + "supported-protocols", + "supported-releases", + "supported-timestamp-formats", + "supported-timestamp-values", + "supported-types", + "supported-types-and-behaviors", + "suppress-kapacitor-alerts-based-on-hierarchy", + "suppress-logo", + "suppress-logo--false", + "suppress-write-log", + "suppress-write-log--false", + "suricata", + "swap", + "swarm", + "swarmautoscale", + "switch-index-types", + "switch-influxdb-cloud-accounts", + "switch-influxdb-cloud-organizations", + "switch-organizations", + "switch-organizations-and-accounts-in-the-header", + "switch-organizations-in-the-influxdb-ui", + "switch-the-current-organization", + "switch-the-current-organization-1", + "symptoms-of-entropy", + "synchronize-hosts-with-ntp", + "synchronize-time-between-hosts", + "synchronous-writing", + "synproxy", + "syntax", + "syntax-1", + "syntax-10", + "syntax-11", + "syntax-12", + "syntax-13", + "syntax-14", + "syntax-15", + "syntax-16", + "syntax-17", + "syntax-18", + "syntax-19", + "syntax-2", + "syntax-20", + "syntax-3", + "syntax-4", + "syntax-5", + "syntax-6", + "syntax-7", + "syntax-8", + "syntax-9", + "syntax-description", + "syntax-documentation", + "syntax-to-restore-from-a-full-or-manifest-only-backup", + "syntax-to-restore-from-incremental-and-metadata-backups", + "sys", + "sys_bytes", + "syslog", + "sysstat", + "system", + "system-1", + "system-built-ins", + "system-metrics-dashboard-template", + "system-package", + "system-query-examples", + "system-requirements", + "system-tables", + "system-tables-are-subject-to-change", + "system_-sample-data", + "systemcompactor", + "systemd", + "systemd-permission-errors", + "systemd-systems", + "systemd_timings", + "systemd_units", + "systempartitions", + "systemqueries", + "systems", + "systemtables", + "sysvinit", + "sysvinit-systems", + "t", + "t1", + "t2", + "table", + "table-and-column-limits", + "table-behavior", + "table-columns", + "table-controls", + "table-examples", + "table-extraction", + "table-formatted-results", + "table-grouping-example", + "table-is-missing-column-column", + "table-is-missing-label-label", + "table-limit", + "table-package", + "table-schemas-should-be-homogenous", + "table-view-example", + "tableau-desktop", + "tables", + "tablescan", + "tacacs", + "tag", + "tag-and-field-key-with-the-same-name", + "tag-and-field-naming-requirements", + "tag-bucket-part-templates", + "tag-field-or-named-result", + "tag-key", + "tag-key-variable-use-cases", + "tag-keys", + "tag-order-does-not-matter", + "tag-part-templates", + "tag-set", + "tag-specification", + "tag-value", + "tag-value-variable-use-cases", + "tag-values", + "tag/Authentication", + "tag/Authorizations-(API-tokens)", + "tag/Backup", + "tag/Bucket-Schemas", + "tag/Buckets", + "tag/Cells", + "tag/Checks", + "tag/Config", + "tag/DBRPs", + "tag/Dashboards", + "tag/Data-IO-endpoints", + "tag/Debug", + "tag/Delete", + "tag/Headers", + "tag/Health", + "tag/Invokable-Scripts", + "tag/Labels", + "tag/Legacy-Authorizations", + "tag/Legacy-Query", + "tag/Legacy-Write", + "tag/Limits", + "tag/Metrics", + "tag/NotificationEndpoints", + "tag/NotificationRules", + "tag/Organizations", + "tag/Pagination", + "tag/Ping", + "tag/Query", + "tag/Quick-start", + "tag/Ready", + "tag/RemoteConnections", + "tag/Replications", + "tag/Resources", + "tag/Response-codes", + "tag/Restore", + "tag/Routes", + "tag/Rules", + "tag/Scraper-Targets", + "tag/Secrets", + "tag/Security-and-access-endpoints", + "tag/Setup", + "tag/Signin", + "tag/Signout", + "tag/Sources", + "tag/Supported-operations", + "tag/System-information-endpoints", + "tag/Tasks", + "tag/Telegraf-Plugins", + "tag/Telegrafs", + "tag/Templates", + "tag/Usage", + "tag/Users", + "tag/Variables", + "tag/Views", + "tag/Write", + "tag_keys", + "tag_limit", + "tag_name_expansion-optional", + "tag_selection-tag_name-tag_value-optional", + "tagcolumns", + "tags", + "tags-are-indexed", + "tags-sub-section", + "tags-versus-fields", + "tags-with-empty-values", + "tail", + "tailing-kapacitor-logs", + "talk", + "tan", + "tanh", + "task", + "task-configuration-options", + "task-details", + "task-executor-errors", + "task-executor-promise-queue-usage", + "task-executor-run-duration", + "task-executor-run-latency-seconds", + "task-executor-run-queue-delta", + "task-executor-total-runs-active", + "task-executor-total-runs-complete", + "task-executor-workers-busy", + "task-metadata", + "task-options-for-invokable-scripts", + "task-scheduler-current-execution", + "task-scheduler-execute-delta", + "task-scheduler-schedule-delay", + "task-scheduler-total-execute-failure", + "task-scheduler-total-execution-calls", + "task-scheduler-total-release-calls", + "task-scheduler-total-schedule-calls", + "task-scheduler-total-schedule-fails", + "task-templates", + "task-updates", + "task-updates-1", + "tasks", + "tasks-and-alerts-differences", + "tasks-and-task-templates", + "tasks-package", + "tasks-possible-with-flux", + "tasks-schemaref-task", + "taxonomy-of-node-types", + "tcp", + "teams", + "teams-package", + "teamspeak", + "technical-analysis", + "technical-analysis-functions", + "technical-and-predictive-analysis", + "technical-details", + "technical-papers", + "technical-preview", + "technical-preview-replicate-data-remotely", + "telegraf", + "telegraf-apt", + "telegraf-configuration-ui", + "telegraf-configurations", + "telegraf-doesnt-support-partial-configurations", + "telegraf-global-flags", + "telegraf-opentsdb-output-plugin", + "telegraf-plugins-in-ui", + "telegraf-setup", + "telegraf-template-patterns", + "telegrafs-total", + "telegram", + "telegram-api-access-token", + "telegram-bot", + "telegram-chat-id", + "telegram-package", + "telegram-setup", + "temp", + "template", + "template-manifests", + "template-part-size-limit", + "template-part-types", + "template-resources", + "template-variable-types", + "template-variables", + "template-variables-in-flux", + "templated-tasks", + "templates", + "templates-pattern", + "tenant-isolation", + "tengine", + "termination-query-log--false", + "terminology", + "terminology-differences", + "test-a-plugin-on-the-server", + "test-a-service", + "test-a-wal-plugin", + "test-a-wal-plugin-using-input-arguments", + "test-a-wal-plugin-with-a-file-containing-line-protocol", + "test-a-wal-plugin-with-a-line-protocol-string", + "test-and-run-your-plugin", + "test-authentication-credentials", + "test-create-and-trigger-plugin-code", + "test-die-function-errors", + "test-if-a-string-contains-a-regular-expression-match", + "test-if-a-value-is-an-infinity-value", + "test-if-a-value-is-negative", + "test-if-streams-of-tables-are-different", + "test-if-streams-of-tables-are-different-mid-script", + "test-if-two-values-are-equal", + "test-migrated-configuration-files", + "test-queries", + "test-services", + "test-the-batch-alert-using-record", + "test-the-stream-alert-using-record", + "test-the-task", + "test-with-openssl", + "test-with-self-signed-certificates", + "test-your-authorization-flow", + "test-your-explicit-schema", + "test-your-schema", + "testcase-statements", + "testing-always-allow-setup", + "testing-package", + "tests", + "testutil-package", + "text", + "text-variable-use-cases", + "thank-you", + "the-agent", + "the-basic-select-statement", + "the-batch-and-point-methods", + "the-complete-udf-script", + "the-cq_query", + "the-cq_query-1", + "the-data-generator", + "the-example-above-returns", + "the-filter-function", + "the-full-tickscript", + "the-goal", + "the-graphite-input", + "the-group-by-clause", + "the-handler", + "the-handler-interface", + "the-influxdb-clustered-helm-chart-includes-the-kubit-operator", + "the-influxdb-storage-engine-and-the-time-structured-merge-tree-tsm", + "the-influxdb-ui-does-not-support-influxql", + "the-info-method", + "the-init-method", + "the-into-clause", + "the-limit-and-slimit-clauses", + "the-limit-clause", + "the-main-method", + "the-new-influxdb-storage-engine-from-lsm-tree-to-btree-and-back-again-to-create-the-time-structured-merge-tree", + "the-offset-and-soffset-clauses", + "the-offset-clause", + "the-restore-process", + "the-select-statement", + "the-server", + "the-shorthand-explained", + "the-show-field-keys-query", + "the-show-stats-for-component-option", + "the-show-stats-for-indexes-option", + "the-slack-handler", + "the-slimit-clause", + "the-soffset-clause", + "the-task", + "the-tickscript", + "the-time-field", + "the-time-zone-clause", + "the-udf-agent-go-api-has-changed", + "the-udp-input", + "the-watcher-of-watchers-approach", + "the-where-clause", + "things-to-consider", + "things-to-note-about-the-join-output", + "thingworx-api-requests", + "third-party-software", + "this-command-is-destructive", + "this-is-a-table", + "this-is-a-table-1", + "this-is-a-table-2", + "this-is-a-table-3", + "this-is-a-table-4", + "this-is-a-table-with-lots-of-stuff", + "this-is-a-table-with-lots-of-stuff-1", + "this-is-a-table-with-lots-of-stuff-2", + "this-is-a-table-with-lots-of-stuff-3", + "this-is-a-table-with-lots-of-stuff-4", + "threads", + "threshold", + "threshold-check", + "tick-overview", + "tickscript", + "tickscript-examples", + "tickscript-helper-function", + "tickscript-language-reference", + "tickscript-nodes-overview", + "tickscript-package", + "tickscript-syntax", + "tickscript-syntax-1", + "tickscript-variable", + "tid", + "time", + "time-and-date-functions", + "time-and-metric-names", + "time-and-timezone-queries", + "time-based-backups", + "time-bounds-on-the-inner-query", + "time-bounds-on-the-outer-query", + "time-bounds-on-the-outer-query-recommended", + "time-columns", + "time-data-type", + "time-examples", + "time-expressions", + "time-functions", + "time-ordered-data", + "time-part-templates", + "time-precision", + "time-range", + "time-range-1", + "time-range-2", + "time-range-3", + "time-range-4", + "time-ranges", + "time-series-data", + "time-series-index-tsi", + "time-series-index-tsi-details", + "time-series-index-tsi-overview", + "time-series-index-tsi-query-performance-and-throughputs-improvements", + "time-specification", + "time-structured-merge-tree-tsm", + "time-syntax", + "time-to-become-readable", + "time-types", + "time-zone", + "time-zone-clause", + "time-zone-example", + "time-zone-selector", + "time-zone-shifts", + "time-zone-shifts-1", + "timeable-constraint", + "timecolumn", + "timed-moving-average", + "timedmovingaverage", + "timedst", + "timeout", + "timeout-deadline-exceeded", + "timerange-label", + "timesrc", + "timestamp", + "timestamp-examples", + "timestamp-format", + "timestamp-functions", + "timestamp-precision", + "timestamp-precision-1", + "timestamp-syntax", + "timestamp-timestamp_format-timezone-optional", + "timestamp_format", + "timestamp_key", + "timestamps", + "timestamps-when-grouping-by-time", + "timestream", + "timetime_interval", + "timetime_intervaloffset_interval", + "timezone", + "timezone-annotation-example", + "timezone-examples", + "timezone-package", + "timing-is-everything", + "tips-for-creating-patterns", + "title", + "tls", + "tls-cert", + "tls-enabled--false", + "tls-key", + "tls-min-version", + "tls-settings", + "tls-strict-ciphers", + "tls-transport-layer-security-flags", + "tls-transport-layer-security-options", + "to", + "to-clone-a-cell", + "to-clone-a-dashboard", + "to-create-a-basic-static-threshold-alert-based-on-the-cpu-measurements-provided-by-telegraf", + "to-delete-a-task-through-chronograf", + "to-disable-a-task-through-chronograf", + "to-does-not-require-a-package-import", + "to-enable-a-task-through-chronograf", + "to-modify-a-third-party-alert-handler", + "to_char", + "to_date", + "to_hex", + "to_local_time", + "to_timestamp", + "to_timestamp_micros", + "to_timestamp_millis", + "to_timestamp_nanos", + "to_timestamp_seconds", + "to_unixtime", + "today", + "toggle-dark-mode-and-light-mode", + "token", + "token-and-security-updates", + "token-and-security-updates-1", + "token-authentication", + "token-management-and-authorization-differences", + "token-prefix", + "token-rotation", + "token-service-call-total", + "token-service-duration", + "token-service-error-total", + "token-services-total", + "token-support", + "tokens", + "tokens-in-production-applications", + "tolerance", + "tolevel", + "tomcat", + "tomhollingworth-package", + "toml", + "toml-escaping", + "too-many-open-files-errors", + "tooling", + "tools-for-monitoring-the-influxdata-1x-platform-tick-stack", + "tools-for-querying-the-v1-api", + "tools-for-working-with-flux", + "tools-for-writing-to-the-v1-api", + "tools-for-writing-to-the-v2-api", + "tools-to-execute-queries", + "tools-to-use", + "top", + "top-and-a-tag-key-with-fewer-than-n-tag-values", + "top-tags-and-the-into-clause", + "top-with-a-group-by-time-clause", + "topic", + "topic-events", + "topic-handlers", + "topic-state", + "topics", + "topics-and-topic-handlers", + "topk", + "total-buffer-bytes", + "total-buffer-bytes--0", + "total-max-memory-bytes", + "total-max-memory-bytes--0", + "total-processes-variable", + "total_alloc_bytes", + "totalalloc", + "totalconnections", + "totalstreams", + "totitle-vs-toupper", + "toupper-vs-totitle", + "trace-logging-enabled", + "trace-logging-enabled--false", + "traces", + "traces-exporter", + "traces-exporter-jaeger-agent-host", + "traces-exporter-jaeger-agent-port", + "traces-exporter-jaeger-service-name", + "traces-exporter-jaeger-trace-context-header-name", + "traces-jaeger-debug-name", + "traces-jaeger-max-msgs-per-second", + "traces-jaeger-tags", + "tracing", + "tracing-examples", + "tracing-identifier-key", + "tracing-type", + "track-requests-over-a-one-minute-interval", + "track-requests-over-a-ten-second-interval", + "track-state-changes-across-task-executions", + "transform-data-with-aggregator-and-processor-plugins", + "transform-data-with-math", + "transform-values-in-a-data-stream", + "transformation", + "transformation-that-adds-a-column-with-an-explicit-type", + "transformations", + "translate", + "transpile-influxql-queries-to-flux", + "transport-layer-security-tls", + "transport-layer-security-tls-settings", + "trendfactor", + "trickle", + "trig", + "trigger", + "trigger-alerts-by-comparing-two-measurements", + "trigger-alerts-from-batch-data", + "trigger-alerts-from-stream-data", + "trigger-specification-examples", + "trigger-system", + "trigger-types", + "trim", + "trim-a-prefix-from-all-values-in-a-column", + "trim-leading-and-trailing-periods-from-all-values-in-a-column", + "trim-leading-and-trailing-spaces-from-all-values-in-a-column", + "trim-leading-periods-from-all-values-in-a-column", + "trim-trailing-periods-from-all-values-in-a-column", + "triple-exponential-moving-average-rules", + "triple_exponential_derivative", + "triple_exponential_moving_average", + "troubleshoot", + "troubleshoot-and-optimize-queries", + "troubleshoot-arrow-flight-requests", + "troubleshoot-bucket-schema-errors", + "troubleshoot-deploying-influxdb-clustered", + "troubleshoot-errors", + "troubleshoot-failures", + "troubleshoot-influxd-ctl-authentication", + "troubleshoot-influxd-ctl-join", + "troubleshoot-influxql-errors", + "troubleshoot-issues-writing-data", + "troubleshoot-join-behaviors", + "troubleshoot-join-error-messages", + "troubleshoot-join-operations", + "troubleshoot-joins", + "troubleshoot-ldap-in-influxdb-enterprise", + "troubleshoot-migration-task-failures", + "troubleshoot-notebooks", + "troubleshoot-oauth-errors", + "troubleshoot-partial-writes", + "troubleshoot-queries", + "troubleshoot-rejected-points", + "troubleshoot-telegraf", + "troubleshoot-template-results-and-permissions", + "troubleshoot-tls", + "troubleshoot-with-new-metrics", + "troubleshoot-write-errors", + "troubleshooting", + "trunc", + "truncate", + "truncate-0", + "truncate-1", + "truncate-2", + "truncate-238", + "truncate-3", + "truncate-4", + "truncate-5", + "truncate-6", + "truncate-a-value-at-the-decimal", + "truncate-all-time-values-to-the-minute", + "truncate-or-wrap-log-messages", + "truncate-shards-3-minutes-after-command-execution", + "truncate-time-values", + "truncate-time-values-using-relative-durations", + "truncate-timestamps-to-a-specified-unit", + "truncate-to-weeks", + "try-it-out", + "tsdbstore", + "tsi", + "tsi-index", + "tsi-level-compaction", + "tsi-log-file-compaction", + "tsi-time-series-index", + "tsi-tsi1-index-settings", + "tsl", + "tsm-compaction-metrics", + "tsm-compaction-strategies", + "tsm-directories-and-files-layout", + "tsm-files", + "tsm-snapshotting-in-memory-cache-to-disk", + "tsm-time-structured-merge-tree", + "tsm-use-madv-willneed--false", + "tsm1_cache", + "tsm1_engine", + "tsm1_filestore", + "tsm1_wal", + "tsmfullcompactionduration", + "tsmfullcompactionerr", + "tsmfullcompactionqueue", + "tsmfullcompactions", + "tsmfullcompactionsactive", + "tsmlevel1compactionduration", + "tsmlevel1compactionerr", + "tsmlevel1compactionqueue", + "tsmlevel1compactions", + "tsmlevel1compactionsactive", + "tsmlevel2compactionduration", + "tsmlevel2compactionerr", + "tsmlevel2compactionqueue", + "tsmlevel2compactions", + "tsmlevel2compactionsactive", + "tsmlevel3compactionduration", + "tsmlevel3compactionerr", + "tsmlevel3compactionqueue", + "tsmlevel3compactions", + "tsmlevel3compactionsactive", + "tsmoptimizecompactionduration", + "tsmoptimizecompactionerr", + "tsmoptimizecompactionqueue", + "tsmoptimizecompactions", + "tsmoptimizecompactionsactive", + "tune-garbage-collection", + "twemproxy", + "two-graphite-listeners-udp--tcp-config", + "two-or-more-data-nodes", + "typ", + "type", + "type-casting-examples", + "type-constraints", + "type-conversion", + "type-conversion-functions", + "type-conversions", + "type-notation", + "type-variables", + "types", + "types-package", + "typesdb--usrlocalsharecollectd", + "tz", + "tz-examples", + "u", + "ubuntu--debian-64-bit", + "ubuntu-and-debian-64-bit", + "ubuntu-and-debian-64-bit-1", + "ubuntu-and-debian-64-bit-2", + "udfname", + "udp", + "udp-is-connectionless", + "udp-protocol-support-in-influxdb", + "udp-read-buffer", + "udp-read-buffer--0", + "udp-settings", + "ui-disabled", + "ui-error-messages", + "ui-improvements", + "ui-improvements-1", + "ui-improvements-10", + "ui-improvements-11", + "ui-improvements-12", + "ui-improvements-13", + "ui-improvements-14", + "ui-improvements-15", + "ui-improvements-16", + "ui-improvements-17", + "ui-improvements-18", + "ui-improvements-19", + "ui-improvements-2", + "ui-improvements-20", + "ui-improvements-21", + "ui-improvements-3", + "ui-improvements-4", + "ui-improvements-5", + "ui-improvements-6", + "ui-improvements-7", + "ui-improvements-8", + "ui-improvements-9", + "uinteger", + "uinteger-field-value-examples", + "uinteger-syntax", + "uintegers", + "unable-to-parse---bad-timestamp", + "unable-to-parse---time-outside-range", + "unauthenticated-unauthenticated", + "unauthorized-permission-denied", + "unbound", + "unbounded-following", + "unbounded-following-1", + "unbounded-preceding", + "understand-and-troubleshoot-flight-responses", + "understand-how-telegraf-writes-data-to-influxdb", + "understand-the-difference-between-tags-and-fields", + "understand-trigger-types", + "understanding-auxiliary-fields", + "understanding-cache-namespaces", + "understanding-cursors", + "understanding-iterators", + "understanding-kubits-role-in-air-gapped-environments", + "understanding-system-table-data-distribution", + "understanding-the-returned-timestamp", + "understanding-the-returned-timestamp-1", + "understanding-tsi", + "unexpected-timestamps-and-values-in-query-results", + "ungroup-data", + "union", + "union-clause", + "union-custom-rows-with-query-results", + "union-query-results-with-custom-data", + "union-results-from-different-measurements", + "union-two-streams-of-tables-with-empty-group-keys", + "union-two-streams-of-tables-with-unique-group-keys", + "union-types", + "union-vs-join", + "unionexec", + "unit", + "units", + "universe-block", + "universe-package", + "unix-epoch", + "unix-nanosecond-to-rfc3339", + "unix-socket-enabled", + "unix-socket-enabled--false", + "unix-timestamp", + "unix-timestamp-example", + "unmodified-examplecsv", + "unnamed-import-file", + "unoptimized-queries", + "unpivot", + "unpivot-data-into-_field-and-_value-columns", + "unshare-a-notebook", + "unsigned-integer", + "unsigned-integers", + "unsignedlong", + "unsupported-influxql-queries", + "unsupported-operations", + "unsupported-operators", + "unsupported-sql-types", + "unwindow-aggregate-tables", + "unwindowed-output-table", + "upcoming-changes-to-influx-cli-packaging", + "update-a-bucket", + "update-a-bucket-schema", + "update-a-bucket-schema-using-the-influx-cli", + "update-a-bucket-schema-using-the-influxdb-http-api", + "update-a-bucket-using-the-http-api", + "update-a-bucket-using-the-influx-cli", + "update-a-buckets-name-in-the-influxdb-ui", + "update-a-buckets-retention-period", + "update-a-buckets-retention-period-in-the-influxdb-ui", + "update-a-connection-configuration-and-do-not-set-it-to-active", + "update-a-connection-configuration-and-set-it-to-active", + "update-a-database", + "update-a-database-token", + "update-a-databases-column-limit", + "update-a-databases-retention-period", + "update-a-databases-table-limit", + "update-a-dbrp-mapping", + "update-a-flux-task", + "update-a-grant", + "update-a-password", + "update-a-remote", + "update-a-replication", + "update-a-restriction", + "update-a-schema-and-print-column-information", + "update-a-schema-using-the-influx-cli", + "update-a-schema-with-columns-format", + "update-a-scraper", + "update-a-scraper-in-the-influxdb-ui", + "update-a-secret-using-the-influx-cli", + "update-a-secret-using-the-influxdb-api", + "update-a-secret-using-the-influxdb-cloud-ui", + "update-a-stack", + "update-a-stack-with-a-name-and-description", + "update-a-stack-with-a-name-and-urls-to-associate-with-stack", + "update-a-stack-with-new-resources-and-export-the-stack-as-a-template", + "update-a-stack-with-new-resources-to-manage", + "update-a-task", + "update-a-task-description", + "update-a-task-flux-script", + "update-a-task-flux-script-1", + "update-a-task-from-a-flux-file", + "update-a-task-from-a-flux-string", + "update-a-task-from-a-script-id", + "update-a-task-in-the-influxdb-ui", + "update-a-task-to-query-multiple-dbrp-combinations", + "update-a-task-with-the-influx-cli", + "update-a-task-with-the-influxdb-api", + "update-a-task-without-reloading-the-task", + "update-a-telegraf-configuration", + "update-a-telegraf-configuration-via-stdin", + "update-a-template", + "update-a-templates-tickscript", + "update-a-templates-type", + "update-a-token", + "update-a-token-for-read-and-write-access-to-a-database", + "update-a-token-for-read-only-access-to-a-database", + "update-a-token-in-the-influxdb-ui", + "update-a-token-to-provide-mixed-permissions-to-multiple-databases", + "update-a-token-to-provide-read-only-access-to-multiple-databases", + "update-a-token-using-the-influxdb-api", + "update-a-token-with-mixed-permissions-to-multiple-databases", + "update-a-token-with-read-and-write-access-to-a-database", + "update-a-token-with-read-and-write-access-to-all-databases", + "update-a-token-with-read-only-access-to-a-database", + "update-a-token-with-read-only-access-to-multiple-databases", + "update-a-tokens-description", + "update-a-tokens-permissions", + "update-a-topic-handler", + "update-a-user", + "update-a-user-in-the-influxdb-ui", + "update-a-user-password", + "update-a-user-password-using-a-user-id", + "update-a-user-password-using-a-username", + "update-a-user-using-the-influx-cli", + "update-a-username", + "update-a-variable", + "update-alert-logic", + "update-an-existing-secret", + "update-an-invokable-script", + "update-an-organization", + "update-an-organization-in-the-influxdb-ui", + "update-an-organization-using-the-influx-cli", + "update-check-queries-and-logic", + "update-checks", + "update-environment-variables-instead-of-removing-them", + "update-flux-task-code", + "update-flux-task-code-api", + "update-flux-task-code-using-a-file", + "update-flux-task-code-via-stdin", + "update-hardcoded-influxdb-urls", + "update-kapacitor-flux-tasks", + "update-node-labels", + "update-notification-endpoints", + "update-notification-rules", + "update-openssl-and-influxdb", + "update-resource-ids", + "update-s2-cell-id-token-level", + "update-secrets", + "update-telegraf-configurations", + "update-the-data-node-configuration-file", + "update-the-default-retention-policy", + "update-the-description-of-an-organization", + "update-the-meta-node-configuration-file", + "update-the-name-of-a-bucket", + "update-the-name-of-a-organization", + "update-the-name-of-a-user", + "update-the-name-of-an-organization", + "update-the-name-or-description--of-a-configuration", + "update-the-name-or-description-for-notification-endpoint", + "update-the-name-or-description-for-notification-rules", + "update-the-retention-period-of-a-bucket", + "update-the-retention-policy-of-a-dbrp-mapping", + "update-the-shard-group-duration-of-a-bucket", + "update-the-source-code-of-an-invokable-script", + "update-the-status-of-a-task", + "update-the-status-of-a-task-1", + "update-the-tickscript-of-a-task", + "update-tokens-ui", + "update-upgraded-influxdb-connections", + "update-users", + "update-your-custom-binary", + "update-your-image-to-use-a-new-package-version", + "update-your-influxdb-enterprise-license-without-restarting-data-nodes", + "update-your-namespace-if-using-a-namespace-other-than-influxdb", + "updated-azure-ad-documentation", + "updates", + "updates-1", + "updates-2", + "updating-tickscript", + "upgrade-bug-fix", + "upgrade-chronograf", + "upgrade-data-nodes", + "upgrade-deb-packages", + "upgrade-from-a-non-licensed-release", + "upgrade-from-influxdb-1x-to-27", + "upgrade-from-influxdb-1x-to-influxdb-cloud", + "upgrade-from-influxdb-20-beta-to-influxdb-20", + "upgrade-from-influxdb-2x-to-influxdb-27", + "upgrade-from-influxdb-oss-2x-to-influxdb-cloud", + "upgrade-influxdb-clustered", + "upgrade-influxdb-enterprise-clusters", + "upgrade-initialization-mode", + "upgrade-meta-nodes", + "upgrade-notes", + "upgrade-notes-1", + "upgrade-notes-2", + "upgrade-notes-3", + "upgrade-notes-4", + "upgrade-notes-5", + "upgrade-notes-6", + "upgrade-notes-7", + "upgrade-notes-8", + "upgrade-requirements", + "upgrade-to-checkpoint-releases-first", + "upgrade-to-influxdb-111x", + "upgrade-to-influxdb-enterprise", + "upgrade-to-kapacitor-v1", + "upgrade-to-the-latest-influxdb-v2-version", + "upgrade-to-usage-based-plan", + "upgrade-with-a-custom-influxdb-1x-configuration-file", + "upgrade-with-custom-paths", + "upgrade-with-zip-or-targz", + "upgrade-your-influxdb-clustered-version", + "upgraded-from-influxdb-1x-to-2x", + "upgrading", + "upgrading--for-users-of-the-tsi-preview", + "upgrading--for-users-of-the-tsi-preview-1", + "upgrading--for-users-of-the-tsi-preview-2", + "upgrading-1", + "upgrading-from-influxdb-enterprise-v1113", + "upload-line-protocol-through-the-chronograf-ui", + "upper", + "upperboundcolumn", + "upperdashboardtime", + "upsd", + "uptime-seconds", + "url", + "url-1", + "url-encode-a-string", + "url-encode-strings-in-a-stream-of-tables", + "url-source", + "urls", + "urm-new-call-total", + "urm-new-duration", + "us-central-iowa", + "us-east-virginia", + "us-west-2-1", + "us-west-2-2", + "usage", + "usage-based-plan", + "usage-notes", + "usage-package", + "use", + "use-a-custom-dashboard-variable", + "use-a-flux-duration-to-define-a-sql-interval", + "use-a-handler-in-a-tickscript", + "use-a-heatmap-to-visualize-correlation", + "use-a-managed-identity-in-an-azure-vm", + "use-a-management-token", + "use-a-package-manager", + "use-a-regex-to-filter-by-field-key", + "use-a-regex-to-filter-by-tag-value", + "use-a-regular-expression-to-specify-a-field-value-in-the-where-clause", + "use-a-regular-expression-to-specify-a-tag-with-a-value-in-the-where-clause", + "use-a-regular-expression-to-specify-a-tag-with-no-value-in-the-where-clause", + "use-a-regular-expression-to-specify-field-keys-and-tag-keys-in-function-arguments", + "use-a-regular-expression-to-specify-field-keys-and-tag-keys-in-the-select-clause", + "use-a-regular-expression-to-specify-measurements-in-the-from-clause", + "use-a-regular-expression-to-specify-tag-keys-in-the-group-by-clause", + "use-a-regular-expression-to-specify-tag-values-in-the-where-clause", + "use-a-scatter-plot-to-visualize-correlation", + "use-a-selector-function-with-a-group-by-time-clause", + "use-a-selector-function-with-another-function-and-with-a-specified-time-range", + "use-a-selector-function-with-another-function-and-without-a-specified-time-range", + "use-a-single-selector-function-with-a-single-field-key-and-without-a-specified-time-range", + "use-a-single-selector-function-with-multiple-field-keys-and-without-a-specified-time-range", + "use-a-token-in-an-api-request", + "use-a-token-in-postman", + "use-alternate-boolean-format", + "use-alternate-numeric-formats", + "use-an-aggregate-function-with-a-specified-time-range", + "use-an-aggregate-function-with-a-specified-time-range-and-a-group-by-time-clause", + "use-an-aggregate-function-with-default-parameters", + "use-an-aggregate-function-without-a-specified-time-range", + "use-an-existing-trial-or-at-home-license", + "use-an-extracted-row-record", + "use-an-influxdb-scraper", + "use-and-configure-display-formats", + "use-and-manage-variables", + "use-annotations-in-chronograf-views", + "use-annotations-in-dashboards", + "use-annotations-in-the-chronograf-interface", + "use-anti-entropy-service-in-influxdb-enterprise", + "use-api-client-libraries", + "use-appropriate-retention-periods", + "use-bundled-distributions-with-browsers-and-module-loaders", + "use-case-examples", + "use-cases", + "use-cert-manager-and-lets-encrypt-to-manage-tls-certificates", + "use-chronograf", + "use-chronograf-with-influxdb-cloud", + "use-chronograf-with-influxdb-oss", + "use-cli-configurations", + "use-cli-environment-variables", + "use-client-libraries", + "use-client-libraries-to-downsample-data", + "use-command-line-options", + "use-compatibility-apis-and-client-libraries-to-write-data", + "use-configuration-files", + "use-cumulativesum-with-aggregatewindow", + "use-curl-to-write-data-from-a-file", + "use-custom-dashboard-variables", + "use-dashboard-template-variables", + "use-dashboard-variables", + "use-data-analysis-tools", + "use-data-source-cells", + "use-database-tokens-to-authorize-data-reads-and-writes", + "use-date_bin_gapfill-to-fill-gaps-in-data", + "use-date_bin_gapfill-to-insert-rows-when-no-rows-exists", + "use-date_bin_wallclock_gapfill-to-fill-gaps-in-data", + "use-date_bin_wallclock_gapfill-to-insert-rows-when-no-rows-exists", + "use-date_trunc-to-return-hourly-averages", + "use-date_trunc-to-return-weekly-averages", + "use-different-timestamp-formats", + "use-docker-cli", + "use-docker-compose", + "use-environment-variables", + "use-example-plugins", + "use-explain-keywords-to-view-a-query-plan", + "use-external-tools-to-manage-and-process-logs", + "use-extracted-column-values", + "use-fields-for-unique-and-numeric-data", + "use-files-to-inject-headers", + "use-first-or-last-with-aggregatewindow", + "use-flux-in-chronograf-dashboards", + "use-flux-to-query-data-from-iox", + "use-go", + "use-grafana", + "use-grafana-with-influxdb-cloud", + "use-grafana-with-influxdb-enterprise", + "use-grafana-with-influxdb-oss", + "use-gzip-compression", + "use-gzip-compression-with-the-influxdb-api", + "use-gzip-to-compress-the-query-response", + "use-heavy-functions-sparingly", + "use-helm-charts", + "use-helm-charts-to-deploy-influxdata-platform-components", + "use-holtwinters-to-predict-future-values", + "use-holtwinters-with-seasonality-to-predict-future-values", + "use-homebrew", + "use-homebrew-to-install-influxctl", + "use-homebrew-to-upgrade", + "use-influx---influxdb-command-line-interface", + "use-influx-cli-commands", + "use-influxdb-3-client-libraries", + "use-influxdb-3-clients", + "use-influxdb-3-clients-to-query", + "use-influxdb-client-libraries-to-write-line-protocol-data", + "use-influxdb-community-templates", + "use-influxdb-flight-rpc-clients", + "use-influxdb-inch", + "use-influxdb-telegraf-configurations", + "use-influxdb-templates", + "use-influxql-for-diagnostics", + "use-influxql-to-write-to-influxdb-2x-or-influxdb-cloud", + "use-join-for-multiple-data-sources", + "use-join-functions-to-join-your-data", + "use-joinfull-to-join-your-data", + "use-joininner-to-join-your-data", + "use-joinleft-to-join-your-data", + "use-joinright-to-join-your-data", + "use-jointime-to-join-your-data", + "use-k8s-operator", + "use-kapacitor-authorizations", + "use-kapacitor-batch-tasks", + "use-kapacitor-stream-tasks", + "use-kapacitor-with-influxdb-cloud", + "use-kapacitor-with-influxdb-oss", + "use-latitude-and-longitude-values-to-generate-s2-cell-id-tokens", + "use-limit-and-slimit-together", + "use-logrotate", + "use-mathabs-in-map", + "use-mathacos-in-map", + "use-mathacosh-in-map", + "use-mathasin-in-map", + "use-mathasinh-in-map", + "use-mathatan-in-map", + "use-mathatanh-in-map", + "use-mathcbrt-in-map", + "use-mathceil-in-map", + "use-mathcopysign-in-map", + "use-mathcos-in-map", + "use-mathcosh-in-map", + "use-mathdim-in-map", + "use-matherf-in-map", + "use-matherfc-in-map", + "use-matherfcinv-in-map", + "use-matherfinv-in-map", + "use-mathexp-in-map", + "use-mathexp2-in-map", + "use-mathexpm1-in-map", + "use-mathfloat64bits-in-map", + "use-mathfloat64frombits-in-map", + "use-mathfloor-in-map", + "use-mathfrexp-in-map", + "use-mathgamma-in-map", + "use-mathhypot-in-map", + "use-mathilogb-in-map", + "use-mathisinf-in-map", + "use-mathisnan-in-map", + "use-mathj0-in-map", + "use-mathj1-in-map", + "use-mathjn-in-map", + "use-mathldexp-in-map", + "use-mathlgamma-in-map", + "use-mathlog-in-map", + "use-mathlog10-in-map", + "use-mathlog1p-in-map", + "use-mathlog2-in-map", + "use-mathlogb-in-map", + "use-mathminf-in-map", + "use-mathmmax-in-map", + "use-mathmmin-in-map", + "use-mathmod-in-map", + "use-mathmodf-in-map", + "use-mathnextafter-in-map", + "use-mathpow-in-map", + "use-mathpow10-in-map", + "use-mathremainder-in-map", + "use-mathround-in-map", + "use-mathroundtoeven-in-map", + "use-mathsignbit-in-map", + "use-mathsin-in-map", + "use-mathsincos-in-map", + "use-mathsinh-in-map", + "use-mathsqrt-in-map", + "use-mathtan-in-map", + "use-mathtanh-in-map", + "use-mathtrunc-in-map", + "use-mathy0-in-map", + "use-mathy1-in-map", + "use-mathyn-in-map", + "use-median-as-a-selector-transformation", + "use-median-as-an-aggregate-transformation", + "use-median-with-aggregatewindow", + "use-multiple-fields-in-a-calculation", + "use-new-influxdb-tools", + "use-no_sync-for-immediate-write-responses", + "use-ntp-to-synchronize-time-between-hosts", + "use-offset-to-account-for-latent-data", + "use-organization-id", + "use-pandas-to-analyze-data", + "use-parameterized-flux-queries", + "use-parameterized-queries-with-influxql", + "use-parameterized-queries-with-sql", + "use-parameters-in-a-script", + "use-parameters-in-where-expressions", + "use-partition-templates", + "use-piped-forward-data-in-a-custom-function", + "use-postman-with-the-influxdb-api", + "use-powershell-for-windows", + "use-pre-created-dashboards", + "use-pre-created-dashboards-in-chronograf", + "use-prometheus-histograms-in-flux", + "use-prometheusscrape", + "use-pyarrow-to-analyze-data", + "use-pyarrow-to-convert-query-results-to-pandas", + "use-pyarrow-to-read-query-results", + "use-python", + "use-python-and-pandas-to-view-an-explain-report", + "use-quantile-with-aggregatewindow", + "use-quix-streams-to-downsample-data", + "use-recommended-naming-conventions", + "use-regular-expression-flags", + "use-regular-expressions-in-predicate-expressions", + "use-restricted-tokens-for-production-apps", + "use-scientific-notation", + "use-secrets", + "use-secrets-in-a-query", + "use-secrets-in-your-query", + "use-secrets-to-store-sql-database-credentials", + "use-selector-functions", + "use-set-instead-of-map-when-possible", + "use-solutions-for-kubernetes-services", + "use-sql-or-influxql-as-your-query-language", + "use-sql-results-to-populate-dashboard-variables", + "use-sql-to-query-data-from-iox", + "use-ssds", + "use-ssl", + "use-superset", + "use-superset-to-query-data", + "use-tableau", + "use-tableau-to-query-data-with-sql", + "use-tag-buckets-for-high-cardinality-tags", + "use-tags-and-fields", + "use-tags-to-improve-query-performance", + "use-task-options-in-your-flux-script", + "use-telegraf", + "use-telegraf-plugins", + "use-telegraf-to-dual-write-to-influxdb", + "use-telegraf-to-write-csv-data", + "use-telegraf-to-write-csv-data-to-influxdb", + "use-telegraf-to-write-data", + "use-telegraf-with-influxdb", + "use-template-variables", + "use-template-variables-in-cell-queries", + "use-template-variables-in-cell-titles", + "use-templates-to-migrate-influxdb-resources", + "use-the---once-option-to-single-shot-execute", + "use-the-api-for-batching-and-higher-volume-writes", + "use-the-apiv3write_lp-endpoint", + "use-the-best-data-type-for-your-data", + "use-the-cli", + "use-the-cli-or-http-api-to-regenerate-the-operator-token", + "use-the-client-library-in-a-nodejs-application", + "use-the-coarsest-time-precision-possible", + "use-the-codeexecdcode-shim", + "use-the-create-trigger-command", + "use-the-current-utc-time-as-a-query-boundary", + "use-the-default-organization", + "use-the-downsampling-jupyter-notebook", + "use-the-flux-lsp-with-vim", + "use-the-flux-to-function-in-a-query", + "use-the-following", + "use-the-following-1", + "use-the-holtwinters-fitted-model-to-predict-future-values", + "use-the-http-api-and-client-libraries-to-write-data", + "use-the-http-query-api", + "use-the-influx-cli", + "use-the-influx-query-command", + "use-the-influxctl-cli", + "use-the-influxctl-cli-to-write-line-protocol-data", + "use-the-influxdb-data-explorer-to-query-data", + "use-the-influxdb-operator", + "use-the-influxdb-ui", + "use-the-influxdb-ui-to-write-csv-data", + "use-the-influxdb-v1-http-api", + "use-the-influxdb3-cli", + "use-the-influxdb3-cli-to-write-data", + "use-the-influxql-into-clause-in-a-query", + "use-the-influxql-shell", + "use-the-interactive-flux-repl", + "use-the-interactive-influxql-shell", + "use-the-kube-influxdb-project", + "use-the-mad-algorithm-to-detect-anomalies", + "use-the-operator-token-to-create-a-named-admin-token", + "use-the-portable-format-for-influxdb-15-and-later", + "use-the-prometheus-remote-read-and-write-api", + "use-the-repl", + "use-the-same-influxdb-clustered-version-used-to-generate-the-snapshot", + "use-the-telegraf-agent", + "use-the-token-to-create-a-database", + "use-the-trigger-specific-namespace", + "use-the-url-query-parameter", + "use-the-v1-query-api-and-influxql", + "use-the-v1-write-api", + "use-the-v3-lightweight-client-libraries", + "use-the-v3-query-api", + "use-thingworx-with-influxdb-cloud", + "use-three-and-only-three-meta-nodes", + "use-timestamps-and-durations-together", + "use-token-authentication-with-curl", + "use-tokens", + "use-tokens-with-basic-authentication", + "use-ttl-appropriately", + "use-visualization-cells", + "use-visualization-tools", + "use-vs-code-to-edit-your-configuration-file", + "use-with-module-bundlers", + "use-your-own-tools", + "useful-performance-metrics-commands", + "usepointtimes", + "useprevious", + "user", + "user-account", + "user-cannot-log-in-after-updating-their-password-in-the-ldap-server", + "user-datagram-protocol-udp", + "user-defined-functions-udfs", + "user-groups", + "user-interface-differences", + "user-interface-improvements", + "user-key", + "user-management", + "user-management-commands", + "user-migration", + "user-new-call-total", + "user-new-duration", + "user-permissions", + "user-provisioning", + "user-sessions-with-authorizations", + "user-types", + "user-types-and-privileges", + "username", + "users", + "users-total", + "users-versus-database-tokens", + "usgs-earthquake-data", + "using-a-single-meta-node-for-non-production-environments", + "using-fips-readiness-checks", + "using-flux-and-influxql", + "using-flux-in-dashboard-cells", + "using-go-and-the-influxdb3-go-client", + "using-influx---influxdb-command-line-interface", + "using-logrotate", + "using-multiple-discord-configurations", + "using-multiple-slack-configurations", + "using-nightly-builds", + "using-or-to-select-time-multiple-time-intervals", + "using-python-and-pandas", + "using-reduce-to-construct-a-json", + "using-sasl-with-kapacitor", + "using-the--file-flag", + "using-the-aggregate-event-handler", + "using-the-alerta-event-handler", + "using-the-configuration-file", + "using-the-discord-event-handler", + "using-the-exec-event-handler", + "using-the-hipchat-event-handler", + "using-the-inhibit-method-to-suppress-alerts", + "using-the-kafka-event-handler", + "using-the-log-event-handler", + "using-the-mqtt-event-handler", + "using-the-opsgenie-event-handler", + "using-the-pagerduty-v1-event-handler", + "using-the-pagerduty-v2-event-handler", + "using-the-post-event-handler", + "using-the-publish-event-handler", + "using-the-pushover-event-handler", + "using-the-read-buffer-option-for-the-udp-listener", + "using-the-sensu-event-handler", + "using-the-show-stats-statement", + "using-the-slack-event-handler", + "using-the-smtpemail-event-handler", + "using-the-snmp-trap-event-handler", + "using-the-tcp-event-handler", + "using-the-telegram-event-handler", + "using-the-victorops-event-handler", + "using-variables", + "using-with-the-file-output", + "using-with-the-file-output-plugin", + "using-with-the-http-output", + "using-with-the-http-output-plugin", + "uuid", + "uwsgi", + "v", + "v0100", + "v01000", + "v01010", + "v01020", + "v01030", + "v01040", + "v01050", + "v01060", + "v01070", + "v01080", + "v01081", + "v01090", + "v01091", + "v0110", + "v01110", + "v01120", + "v01121", + "v01130", + "v01140", + "v01141", + "v01150", + "v01160", + "v01170", + "v01171", + "v01172", + "v01173", + "v01180", + "v01181", + "v01191", + "v0120", + "v01200", + "v01201", + "v01210", + "v01220", + "v01230", + "v01240", + "v01250", + "v01260", + "v01270", + "v01271", + "v01272", + "v01273", + "v01280", + "v01290", + "v0130", + "v01300", + "v01310", + "v01320", + "v01330", + "v01340", + "v01351", + "v01360", + "v01370", + "v01380", + "v01390", + "v0140", + "v01400", + "v01410", + "v01420", + "v01430", + "v01431", + "v01440", + "v01450", + "v01460", + "v01470", + "v01480", + "v01490", + "v0150", + "v01500", + "v01501", + "v01510", + "v01511", + "v01520", + "v01530", + "v01540", + "v01550", + "v01551", + "v01560", + "v01570", + "v01580", + "v01590", + "v0160", + "v01600", + "v0161", + "v01610", + "v01620", + "v01630", + "v01640", + "v01641", + "v01650", + "v01660", + "v01670", + "v01680", + "v01690", + "v0170", + "v01700", + "v01701", + "v01710", + "v01720", + "v01730", + "v01740", + "v01741", + "v01750", + "v01760", + "v01770", + "v01771", + "v01780", + "v01790", + "v0180", + "v01800", + "v01801", + "v01810", + "v01820", + "v01830", + "v01840", + "v01841", + "v01842", + "v01850", + "v01860", + "v01870", + "v01880", + "v01881", + "v01890", + "v0190", + "v01900", + "v01910", + "v01920", + "v01930", + "v01940", + "v01941", + "v01943", + "v01943-1", + "v01944", + "v01945", + "v01950", + "v01951", + "v0200", + "v0210", + "v0211", + "v0212", + "v0213", + "v0214", + "v0220", + "v0230", + "v0240", + "v0250", + "v0260", + "v0270", + "v0280", + "v0281", + "v0282", + "v0283", + "v0290", + "v0300", + "v0310", + "v0311", + "v0320", + "v0321", + "v0330", + "v0331", + "v0332", + "v0341", + "v0342", + "v0350", + "v0351", + "v0360", + "v0361", + "v0362", + "v0370", + "v0371", + "v0372", + "v0380", + "v0390", + "v0400", + "v0401", + "v0402", + "v0410", + "v0420", + "v0430", + "v0440", + "v0450", + "v0451", + "v0452", + "v0460", + "v0461", + "v0462", + "v0470", + "v0471", + "v0480", + "v0490", + "v0500", + "v0501", + "v0502", + "v0510", + "v0520", + "v0530", + "v0540", + "v0550", + "v0551", + "v0560", + "v0570", + "v0580", + "v0581", + "v0582", + "v0583", + "v0584", + "v0590", + "v0591", + "v0592", + "v0593", + "v0594", + "v0595", + "v0596", + "v0600", + "v0610", + "v0620", + "v0630", + "v0640", + "v0650", + "v0660", + "v0661", + "v0670", + "v0680", + "v0690", + "v0691", + "v0692", + "v0700", + "v0710", + "v0711", + "v0720", + "v0721", + "v073", + "v0730", + "v074", + "v0740", + "v0750", + "v0760", + "v0761", + "v0770", + "v0771", + "v0780", + "v0790", + "v080", + "v0800", + "v0810", + "v0820", + "v0821", + "v0822", + "v0830", + "v0831", + "v0840", + "v0850", + "v0860", + "v0870", + "v0871", + "v0880", + "v0890", + "v090", + "v0900", + "v0910", + "v0920", + "v0930", + "v0940", + "v0950", + "v0960", + "v0970", + "v0980", + "v0990", + "v1-api-query-parameters", + "v1-api-write-parameters", + "v1-cli-not-supported", + "v1-influx-cli-not-supported", + "v1-package", + "v1-write-endpoint", + "v10", + "v100", + "v101", + "v102", + "v103", + "v104", + "v110", + "v110-1", + "v1100", + "v1101", + "v1102", + "v1103", + "v1104", + "v1105", + "v1106", + "v1107", + "v111", + "v1110", + "v1111", + "v1112", + "v1113", + "v1114", + "v1115", + "v1116", + "v1117", + "v1118", + "v112", + "v112-1", + "v1121", + "v1122", + "v1123", + "v1124", + "v1125", + "v1126", + "v113", + "v1131", + "v1132", + "v1133", + "v1134", + "v114", + "v1141", + "v1142", + "v1143", + "v1144", + "v1145", + "v115", + "v1150", + "v1151", + "v1152", + "v1153", + "v1160", + "v1161", + "v1162", + "v1163", + "v1170", + "v1171", + "v1172", + "v1173", + "v118", + "v1181", + "v1182", + "v1183", + "v1190", + "v1191", + "v1192", + "v1193", + "v12", + "v120", + "v1201", + "v1202", + "v1203", + "v1204", + "v121", + "v121-1", + "v1211", + "v1212", + "v1213", + "v1214", + "v122", + "v1220", + "v1221", + "v1222", + "v1223", + "v1224", + "v123", + "v1230", + "v1231", + "v1232", + "v1233", + "v1234", + "v1234-1", + "v124", + "v1240", + "v1241", + "v1242", + "v1243", + "v1244", + "v125", + "v1250", + "v1251", + "v1252", + "v1253", + "v1260", + "v1261", + "v1262", + "v1263", + "v1270", + "v1271", + "v1272", + "v1273", + "v1274", + "v1280", + "v1281", + "v1282", + "v1283", + "v1284", + "v1285", + "v1290", + "v1291", + "v1292", + "v1293", + "v1294", + "v1295", + "v130", + "v1300", + "v1301", + "v1302", + "v1303", + "v131", + "v1310", + "v13100", + "v1311", + "v1312", + "v1313", + "v132", + "v1320", + "v1321", + "v1322", + "v1323", + "v133", + "v1330", + "v1331-2025-01-10", + "v1332-2025-02-10", + "v1333-2025-02-25", + "v134", + "v1340", + "v1340-2025-03-10", + "v1341-2025-03-24", + "v135", + "v1350", + "v136", + "v1360", + "v1361", + "v137", + "v1370", + "v138", + "v1380", + "v1381", + "v1382", + "v1383", + "v139", + "v1390", + "v140", + "v1400", + "v1401", + "v1403", + "v141", + "v1411", + "v1412", + "v1413", + "v1415", + "v142", + "v1421", + "v1423", + "v1425", + "v143", + "v1430", + "v1431", + "v1433", + "v144", + "v1440", + "v1441", + "v145", + "v15", + "v150", + "v1500", + "v1501", + "v151", + "v152", + "v153", + "v154", + "v155", + "v156", + "v157", + "v158", + "v159", + "v16", + "v160", + "v161", + "v162", + "v163", + "v164", + "v165", + "v166", + "v17", + "v170", + "v171", + "v1710", + "v1711", + "v1712", + "v1713", + "v1714", + "v1715", + "v1716", + "v1717", + "v172", + "v173", + "v174", + "v175", + "v176", + "v177", + "v178", + "v179", + "v18", + "v180", + "v181", + "v1810", + "v182", + "v183", + "v184", + "v185", + "v186", + "v187", + "v188", + "v189", + "v1891", + "v190", + "v191", + "v192", + "v193", + "v194", + "v195", + "v196", + "v197", + "v198", + "v200", + "v200-alpha1", + "v200-alpha10", + "v200-alpha11", + "v200-alpha12", + "v200-alpha13", + "v200-alpha14", + "v200-alpha15", + "v200-alpha16", + "v200-alpha17", + "v200-alpha18", + "v200-alpha19", + "v200-alpha2", + "v200-alpha20", + "v200-alpha21", + "v200-alpha3", + "v200-alpha4", + "v200-alpha5", + "v200-alpha6", + "v200-alpha7", + "v200-alpha8", + "v200-alpha9", + "v200-beta1", + "v200-beta10", + "v200-beta11", + "v200-beta12", + "v200-beta13", + "v200-beta14", + "v200-beta15", + "v200-beta16", + "v200-beta2", + "v200-beta3", + "v200-beta4", + "v200-beta5", + "v200-beta6", + "v200-beta7", + "v200-beta8", + "v200-beta9", + "v200-rc0", + "v200-rc1", + "v200-rc2", + "v200-rc3", + "v200-rc4", + "v201", + "v201-general-availability", + "v202", + "v202-general-availability", + "v203", + "v203-general-availability", + "v204", + "v204-general-availability", + "v205-general-availability", + "v206-general-availability", + "v207", + "v208", + "v209", + "v210", + "v2100", + "v211", + "v220", + "v221", + "v230", + "v231", + "v240", + "v241", + "v242", + "v243", + "v244", + "v250", + "v251", + "v260", + "v261", + "v270", + "v271", + "v2710", + "v2711", + "v2712", + "v273", + "v274", + "v275", + "v276", + "v277", + "v278", + "v279", + "v280", + "v290", + "v291", + "v292", + "v293", + "v294", + "v295", + "v296", + "v297", + "v298", + "v299", + "v2x-influx-cli-not-supported", + "v3-wayfinding-close", + "v3-wayfinding-modal", + "v3-wayfinding-opt-out", + "v3-wayfinding-opt-out-input", + "v3-wayfinding-stay", + "v3-wayfinding-switch", + "v300", + "v300-0beta1", + "v300-0beta2", + "v300-0beta3", + "v301", + "v302", + "v303", + "v310", + "valcolumn", + "valid-duration-units", + "valid-durations-units", + "valid-durations-units-include", + "validate-a-hex-color-code-string", + "validate-a-template", + "validate-all-influxdb-templates-in-a-directory", + "validate-an-influxdb-template-from-a-local-file", + "validate-an-influxdb-template-from-a-url", + "validate-influxdb-templates-from-multiple-files", + "validate-keys--false", + "validate-your-telegraf-configuration-with---test", + "value", + "value-count", + "valuecolumn", + "valuecolumns", + "valuecounter", + "valuedst", + "values-per-second", + "valueswrittenok", + "valueswrittenok-1", + "var", + "var_pop", + "var_population", + "var_samp", + "var_sample", + "variable", + "variable-assignment", + "variable-name-restrictions", + "variable-types", + "variables", + "variables-and-literals", + "varnish", + "vars", + "vault", + "vault-addr", + "vault-address", + "vault-cacert", + "vault-capath", + "vault-client-cert", + "vault-client-key", + "vault-client-timeout", + "vault-max-retries", + "vault-skip-verify", + "vault-tls-server-name", + "vault-token", + "vectorize", + "venv-install", + "verb-usage", + "verbose", + "verbose-option", + "verification", + "verify", + "verify-1x-users-were-migrated-to-hahahugoshortcode1641s33hbhb", + "verify-buckets-have-a-mapping", + "verify-certificate-and-key-files", + "verify-certificate-and-key-files-1", + "verify-database-components", + "verify-dns-resolution", + "verify-download-integrity-using-sha-256", + "verify-file-integrity-and-authenticity-using-gpg", + "verify-influxdb-resources-data-and-integrations", + "verify-ldap-authentication-using-a-local-configuration", + "verify-ldap-authentication-using-the-server-configuration", + "verify-role-deletion", + "verify-role-permissions", + "verify-roles", + "verify-seriesfile", + "verify-snapshots", + "verify-the-authenticity-of-downloaded-binary-optional", + "verify-the-install", + "verify-the-secret-exists", + "verify-tls-configuration", + "verify-tls-connection", + "verify-tombstone", + "verify-user-in-role", + "verify-user-permissions", + "verify-user-removal", + "verify-your-license", + "verify-your-setup", + "verifying-the-restart", + "verifying-the-stack", + "version", + "version-format", + "version-maintenance", + "vertica-data-source-name", + "vertica-to-flux-data-type-conversion", + "vertical-scaling", + "vertically-scale-a-component", + "victorops", + "victorops-cpu-alerttick", + "victorops-package", + "victorops-settings-in-kapacitorconf", + "victorops-setup", + "video-arrow", + "view-a-birds-migration-path", + "view-a-list-of-all-checks", + "view-a-list-of-all-notification-rules", + "view-a-single-token", + "view-a-tasks-run-history-in-the-influxdb-ui", + "view-a-tasks-run-history-with-the-influx-cli", + "view-a-tasks-run-history-with-the-influxdb-api", + "view-a-template-summary", + "view-abs-query-example", + "view-account-information", + "view-acos-query-example", + "view-acosh-query-example", + "view-alert-history", + "view-all-dbrp-mappings", + "view-all-partitions-for-a-table", + "view-all-stored-query-logs", + "view-and-create-influxdb-dbrp-mappings", + "view-and-create-influxdb-v1-authorizations", + "view-and-download-the-telegrafconf", + "view-approx_distinct-query-example", + "view-approx_median-query-example", + "view-approx_percentile_cont-query-example", + "view-approx_percentile_cont_with_weight-query-example", + "view-array_agg-query-example", + "view-arrow_cast-query-example", + "view-arrow_typeof-query-example", + "view-ascii-query-example", + "view-asin-query-example", + "view-asinh-query-example", + "view-atan-query-example", + "view-atan2-query-example", + "view-atanh-query-example", + "view-available-influxdb-client-libraries", + "view-avg-query-example", + "view-bit_and-query-example", + "view-bit_length-query-example", + "view-bit_or-query-example", + "view-bit_xor-query-example", + "view-bool_and-query-example", + "view-bool_or-query-example", + "view-btrim-query-example", + "view-bucket-retention-periods", + "view-bucket-retention-periods-and-shard-group-durations", + "view-bucket-schema-type-and-schemas", + "view-buckets", + "view-buckets-in-the-influxdb-ui", + "view-buckets-using-the-influx-cli", + "view-buckets-using-the-influxdb-http-api", + "view-cbrt-query-example", + "view-ceil-query-example", + "view-check-details", + "view-checkpoint-release-upgrade-example", + "view-checks", + "view-chr-query-example", + "view-chronograf-dashboards-in-presentation-mode", + "view-cluster-details", + "view-coalesce-query-example", + "view-collectd-configuration-properties", + "view-column-information-for-a-table", + "view-command-updates", + "view-compaction-totals-for-a-specific-table", + "view-compaction-totals-for-each-table", + "view-concat-query-example", + "view-concat_ws-query-example", + "view-configuration-option-parity", + "view-configuration-sections", + "view-corr-query-example", + "view-cos-query-example", + "view-cosh-query-example", + "view-cot-query-example", + "view-count-query-example", + "view-covar-query-example", + "view-covar_pop-query-example", + "view-covar_samp-query-example", + "view-critical-check-statuses-from-the-last-hour", + "view-cume_dist-query-example", + "view-current_date-query-example", + "view-current_time-query-example", + "view-data-information-and-statistics", + "view-data-usage", + "view-database-retention-periods", + "view-date_bin-query-example", + "view-date_bin_wallclock-query-example", + "view-date_part-query-examples", + "view-date_trunc-query-examples", + "view-degrees-query-example", + "view-dense_rank-query-example", + "view-digest-query-example", + "view-distinct_cache-query-example", + "view-earthquakes-reported-by-usgs", + "view-encode-query-example", + "view-ends_with-query-example", + "view-error-counts-by-severity-over-time", + "view-example", + "view-example-1x-databases-and-retention-policies-as-influxdb-cloud-buckets", + "view-example-1x-databases-and-retention-policies-as-influxdb-cloud-dedicated-databases", + "view-example-1x-databases-and-retention-policies-as-influxdb-clustered-databases", + "view-example-appinstance-with-resource-requests-and-limits", + "view-example-aws-s3-access-policy", + "view-example-buckets-output", + "view-example-csv-formatted-output", + "view-example-csv-formatted-results", + "view-example-for-fnfield_key-n", + "view-example-for-fnfield_key-tag_key-n", + "view-example-general-statistics-output", + "view-example-health-summary", + "view-example-influxd-ctl-show-output", + "view-example-ingester-storage-configuration", + "view-example-ingress-statistics-output", + "view-example-input", + "view-example-input-and-output", + "view-example-input-and-output-data", + "view-example-json-formatted-output", + "view-example-json-formatted-results", + "view-example-json-line-formatted-output", + "view-example-json-line-formatted-results", + "view-example-json-output", + "view-example-of-a-sparse-non-homogenous-schema", + "view-example-of-disabling-partial-writes-in-your-appinstance-resource", + "view-example-of-environment-variables-in-all-components", + "view-example-output", + "view-example-output-1", + "view-example-output-2", + "view-example-output-3", + "view-example-output-4", + "view-example-output-5", + "view-example-output-6", + "view-example-output-7", + "view-example-output-8", + "view-example-partition-templates-and-keys", + "view-example-pretty-formatted-output", + "view-example-pretty-formatted-results", + "view-example-response-body", + "view-example-results", + "view-example-results-1", + "view-example-results-2", + "view-example-results-3", + "view-example-results-with-unix-nanosecond-timestamps", + "view-example-schemafieldkeys-output", + "view-example-schemameasurementfieldkeys-output", + "view-example-schemameasurements-output", + "view-example-schemameasurementtagkeys-output", + "view-example-schemameasurementtagvalues-output", + "view-example-schematagkeys-output", + "view-example-schematagvalues-output", + "view-example-table-formatted-results", + "view-example-valuesyaml-with-resource-requests-and-limits", + "view-example-with-an-array-of-json-objects", + "view-example-with-an-array-of-scalar-values", + "view-examples-of-json-arrays-that-cannot-be-directly-parsed-into-flux-arrays", + "view-examples-of-using-exists-to-check-for-non-null-dynamic-types", + "view-existing-dbrp-mappings", + "view-existing-grants", + "view-existing-restrictions", + "view-existing-roles", + "view-existing-v1-authorizations", + "view-exp-query-example", + "view-explain-analyze-example-output", + "view-explain-example-output", + "view-extract-query-example", + "view-factorial-query-example", + "view-find_in_set-query-example", + "view-first_value-query-example", + "view-flightqueryjava", + "view-floor-query-example", + "view-flux-query-results", + "view-free-plan-information", + "view-from-clause-subquery-example", + "view-from_unixtime-query-example", + "view-full-example-telegraf-configuration-file", + "view-gcd-query-example", + "view-general-kapacitor-statistics", + "view-grouping-query-example", + "view-in-examples-using-a-list-literal", + "view-in-examples-using-a-query", + "view-in-presentation-mode", + "view-incoming-data", + "view-influxd-ctl-show-output-with-added-labels", + "view-influxd-ctl-show-output-with-deleted-label", + "view-influxd-ctl-show-output-with-updated-labels", + "view-influxdb-api-documentation-locally", + "view-influxdb-flight-and-grpc-status-codes", + "view-influxdb-oss-replication-service-metrics", + "view-influxql-query-results", + "view-information-about-failed-runs-that-would-be-executed", + "view-initcap-query-example", + "view-input-and-downsampled-output", + "view-input-and-pivoted-output", + "view-instr-query-example", + "view-interpolate-query-example", + "view-isnan-query-example", + "view-iszero-query-example", + "view-json-manifest", + "view-kapacitor-flux-task-logs", + "view-kapacitor-ingress-statistics", + "view-kapacitord-config-output", + "view-lag-query-example", + "view-last_cache-query-example", + "view-last_value-query-example", + "view-lcm-query-example", + "view-lead-query-example", + "view-left-query-example", + "view-length-query-example", + "view-levenshtein-query-example", + "view-license-controller-logs", + "view-ln-query-example", + "view-locf-query-example", + "view-log-query-example", + "view-log10-query-example", + "view-log2-query-example", + "view-logs-for-a-task-with-the-influxdb-api", + "view-logs-in-chronograf", + "view-lower-query-example", + "view-lpad-query-example", + "view-ltrim-query-example", + "view-make_date-query-example", + "view-mapped-environment-variables", + "view-max-query-example", + "view-md5-query-example", + "view-median-query-example", + "view-members", + "view-members-of-organization-in-the-influxdb-ui", + "view-members-of-organization-using-the-influx-cli", + "view-min-query-example", + "view-more-buckets-in-the-influx-cli", + "view-more-export-command-examples", + "view-myinfluxdbyml-appinstance-configuration", + "view-nanvl-query-example", + "view-node-labels", + "view-notification-endpoint-details", + "view-notification-endpoint-history", + "view-notification-rule-details", + "view-notification-rules", + "view-notifications-triggered-by-a-notification-rule", + "view-now-query-example", + "view-nth_value-query-example", + "view-ntile-query-example", + "view-nullif-query-example", + "view-nvl-query-example", + "view-nvl2-query-example", + "view-octet_length-query-example", + "view-opentsdb-configuration-properties", + "view-or-hide-annotations", + "view-or-update-notebooks", + "view-organization", + "view-organizations", + "view-organizations-in-the-influxdb-ui", + "view-organizations-using-the-influx-cli", + "view-output-table", + "view-overlay-query-example", + "view-partition-information", + "view-percent-encoded-dsn-example", + "view-percent_rank-query-example", + "view-pi-query-example", + "view-position-query-example", + "view-power-query-example", + "view-program-output", + "view-queries", + "view-query-logs-for-a-specific-query-within-a-time-interval", + "view-query-logs-for-queries-with-end-to-end-durations-above-a-threshold", + "view-query-results", + "view-radians-query-example", + "view-random-query-example", + "view-rank-query-example", + "view-raw-data", + "view-regexp_count-query-example", + "view-regexp_like-query-example", + "view-regexp_match-query-example", + "view-regexp_replace-query-example", + "view-regr_avgx-query-example", + "view-regr_avgy-query-example", + "view-regr_count-query-example", + "view-regr_intercept-query-example", + "view-regr_r2-query-example", + "view-regr_slope-query-example", + "view-regr_sxx-query-example", + "view-regr_sxy-query-example", + "view-regr_syy-query-example", + "view-repeat-query-example", + "view-replace-query-example", + "view-returned-markdown-table", + "view-reverse-query-example", + "view-right-query-example", + "view-round-query-example", + "view-row_number-query-example", + "view-rpad-query-example", + "view-rtrim-query-example", + "view-runtime-configuration", + "view-sample-configtoml", + "view-sample-ldap-configuration", + "view-schema-type-and-schemas-in-the-influxdb-ui", + "view-schema-type-and-schemas-using-the-influx-cli", + "view-schema-type-and-schemas-using-the-influxdb-http-api", + "view-secret-keys", + "view-secret-keys-using-the-influx-cli", + "view-secret-keys-using-the-influxdb-api", + "view-secret-keys-using-the-influxdb-cloud-ui", + "view-selector_first-query-example", + "view-selector_last-query-example", + "view-selector_max-query-example", + "view-selector_min-query-example", + "view-setup-instructions", + "view-sha224-query-example", + "view-sha256-query-example", + "view-sha384-query-example", + "view-sha512-query-example", + "view-show-all-example-output", + "view-signum-query-example", + "view-sin-query-example", + "view-sinh--query-example", + "view-split_part-query-example", + "view-sql-query-results", + "view-sqrt-query-example", + "view-stacks", + "view-starts_with-query-example", + "view-statuses-generated-by-a-check", + "view-statuses-generated-by-a-notification-rule", + "view-stddev-query-example", + "view-stddev_pop-query-example", + "view-stddev_samp-query-example", + "view-string_agg-query-example", + "view-strpos-query-example", + "view-substr-query-example", + "view-substr_index-query-example", + "view-sum-query-example", + "view-systemcompactor-schema", + "view-systempartitions-schema", + "view-systemqueries-schema", + "view-systemtables-schema", + "view-table-illustration-of-a-full-outer-join", + "view-table-illustration-of-a-left-outer-join", + "view-table-illustration-of-a-right-outer-join", + "view-table-illustration-of-an-inner-join", + "view-tan-query-example", + "view-tanh-query-example", + "view-task-run-history-and-logs", + "view-task-run-logs", + "view-task-run-logs-with-the-influxdb-api", + "view-tasks", + "view-tasks-in-the-influxdb-ui", + "view-tasks-with-the-influx-cli", + "view-tasks-with-the-influxdb-api", + "view-telegraf-configurations", + "view-the-command-line-that-invoked-influxdb", + "view-the-dockerfile", + "view-the-incoming-data", + "view-the-kapacitor-server-or-cluster-id", + "view-the-linebuilder-python-implementation", + "view-the-maven-pomxml", + "view-the-monitoring-dashboard", + "view-the-number-of-partitions-for-a-specific-table", + "view-the-number-of-partitions-per-table", + "view-the-partition-template-of-a-specific-table", + "view-the-requirements-for-azure-blob-storage", + "view-the-requirements-for-google-cloud-storage", + "view-the-returned-json-object", + "view-the-size-in-megabytes-of-a-specific-table", + "view-the-size-in-megabytes-per-table", + "view-the-status-of-cache-warm-operations", + "view-the-string-representation-of-any-flux-type", + "view-the-total-size-in-bytes-of-compacted-partitions-for-a-specific-table", + "view-the-total-size-in-bytes-of-compacted-partitions-per-table", + "view-the-written-data", + "view-time-range-selector", + "view-time-zone-discontinuity-example", + "view-to_char-query-example", + "view-to_date-query-example", + "view-to_hex-query-example", + "view-to_local_time-query-example", + "view-to_local_time-query-example-with-a-time-zone-offset", + "view-to_local_time-query-example-with-date_bin", + "view-to_timestamp-query-example", + "view-to_timestamp_micros-example-with-string-format-parsing", + "view-to_timestamp_micros-query-example", + "view-to_timestamp_millis-example-with-string-format-parsing", + "view-to_timestamp_millis-query-example", + "view-to_timestamp_nanos-example-with-string-format-parsing", + "view-to_timestamp_nanos-query-example", + "view-to_timestamp_seconds-example-with-string-format-parsing", + "view-to_timestamp_seconds-query-example", + "view-to_unixtime-example-with-string-format-parsing", + "view-to_unixtime-query-example", + "view-tokens", + "view-tokens-in-the-influxdb-ui", + "view-tokens-using-the-influx-cli", + "view-tokens-using-the-influxdb-api", + "view-translate-query-example", + "view-trim-query-example", + "view-trunc-query-example", + "view-tz-and-timestamp-comparison", + "view-tz-query-example", + "view-tz-query-example-from-getting-started-data", + "view-udp-configuration-properties", + "view-upper-query-example", + "view-usage-based-plan-information", + "view-users", + "view-users-using-the-influx-cli", + "view-uuid-query-example", + "view-var-query-example", + "view-var_pop-query-example", + "view-var_samp-query-example", + "view-variables", + "view-variables-in-the-data-explorer", + "view-variables-in-the-organization", + "view-version-1-tables-when-queried-from-influxdb", + "view-version-2-tables-when-queried-from-influxdb", + "view-written-data", + "view-your-dashboard-id", + "view-your-influxdb-logs", + "view-your-organization-id", + "view-your-organization-name", + "view-your-runtime-server-configuration", + "view-your-server-configuration-with-the-api", + "view-your-server-configuration-with-the-cli", + "viewers-roleviewer", + "viewing-alert-tasks-in-chronograf", + "viewing-alerts-from-tasks-in-the-alert-history-of-chronograf", + "virtual-dbrp-mappings", + "virtual-env-location", + "virtual-training-schedule", + "virtual-training-videos", + "visibleto", + "visualization", + "visualization-fixes", + "visualization-options-for-pressure-gauge", + "visualization-types", + "visualization-types-in-chronograf", + "visualization-updates", + "visualize-data", + "visualize-errors-by-severity", + "visualize-influxdb-internal-metrics", + "visualize-kapacitor-metrics", + "visualize-prometheus-histograms-in-influxdb", + "visualize-summary-metric-quantile-values", + "visualize-that-data-in-a-chronograf-dashboard", + "visualize-your-query", + "vmware-vsphere-hosts", + "vmware-vsphere-overview", + "vmware-vsphere-vms", + "volume-reference", + "vsflux-and-flux-lsp-no-longer-maintained", + "vsphere", + "vsphere-dashboard-template", + "vtimerangestart", + "vtimerangestop", + "vwindowperiod", + "w", + "wait-before-writing-to-a-new-database-with-the-same-name", + "wait-before-writing-to-a-new-database-with-the-same-name-as-a-deleted-database", + "wait-for-a-recording", + "wait-for-replays", + "wal-dir", + "wal-dir--varlibinfluxdbwal", + "wal-directories-and-files-layout", + "wal-directory", + "wal-failed-write-attempts", + "wal-flush-interval", + "wal-fsync-delay", + "wal-fsync-delay--0s", + "wal-max-write-buffer-size", + "wal-size", + "wal-snapshot-size", + "wal-subsystem-metrics", + "wal-write-ahead-log", + "wal-write-attempts", + "walcompactiontimems", + "want", + "warm-the-cache", + "warm-the-ldap-cache", + "warmup_type", + "warn", + "warnreset", + "warns_triggered", + "warp10", + "watch", + "water_level_checsumflux", + "water_level_processflux", + "wavefront", + "web", + "web-console", + "webexteams-package", + "webhookid", + "webhooks", + "webhooktoken", + "websocket", + "week_offset", + "west-europe-amsterdam", + "what-about-buckets-and-measurements", + "what-alternatives-are-available-in-light-of-this-eol-announcement", + "what-alternatives-do-you-have-for-flux-tasks", + "what-are-the-configuration-recommendations-and-schema-guidelines-for-writing-sparse-historical-data", + "what-are-the-expected-next-steps", + "what-are-the-minimum-and-maximum-integers-that-influxdb-can-store", + "what-are-the-minimum-and-maximum-timestamps-that-influxdb-can-store", + "what-causes-unexpected-or-additional-values-with-same-timestamp", + "what-determines-the-time-intervals-returned-by-group-by-time-queries", + "what-different-types-of-api-tokens-exist", + "what-do-you-mean-by-flux-is-in-maintenance-mode", + "what-happened-to-buckets-and-measurements", + "what-happened-to-the-_time-column", + "what-is-a-user-defined-function-udf", + "what-is-in-this-section", + "what-is-running", + "what-is-series-cardinality", + "what-is-the-difference-between-a-socket-udf-and-a-process-udf", + "what-is-the-native-collector---mqtt-feature", + "what-is-the-processing-engine", + "what-is-the-relationship-between-shard-group-durations-and-retention-periods", + "what-is-the-relationship-between-shard-group-durations-and-retention-policies", + "what-is-time-series-data", + "what-newline-character-does-the-influxdb-api-require", + "what-newline-character-does-the-influxdb-write-api-require", + "what-words-and-characters-should-i-avoid-when-writing-data-to-influxdb", + "what-you-will-need", + "whats-in-this-guide", + "when-creating-a-bucket", + "when-do-i-need-more-ram", + "when-does-data-actually-get-deleted", + "when-querying-data", + "when-should-i-single-quote-and-when-should-i-double-quote-in-queries", + "when-should-i-single-quote-and-when-should-i-double-quote-when-writing-data", + "when-should-i-use-single-quote-versus-double-quotes-in-a-query", + "when-should-we-use-kapacitor-instead-of-cqs", + "when-should-we-use-stream-tasks-vs-batch-tasks-in-kapacitor", + "when-to-consider-custom-partitioning", + "when-to-use-helm", + "when-to-use-kubectl", + "when-to-use-kubit-cli", + "when-to-use-the-join-package", + "when-to-use-union-and-pivot-instead-of-join-functions", + "when-writing-data", + "where", + "where-are-my-certificates", + "where-can-i-find-influxdb-enterprise-logs", + "where-can-i-find-influxdb-logs", + "where-can-i-get-more-information-on-using-telegraf-as-a-replacement-for-native-collector---mqtt", + "where-can-i-see-the-current-status-of-influxdb-cloud", + "where-can-i-see-the-current-status-of-my-influxdb-instance", + "where-clause", + "where-clause-examples", + "where-clause-subqueries", + "where-clause-with-correlated-subquery", + "where-clause-with-non-scalar-subquery", + "where-clause-with-scalar-subquery", + "where-data-lives", + "where-subquery-examples", + "where-subquery-syntax", + "where-to-from-here", + "where-to-next", + "where-to-store-data-tag-or-field", + "which-influxql-functions-support-nesting", + "whitespace", + "whitespace-i", + "whitespace-ii", + "who-do-i-contact-for-billing-issues", + "why-am-i-getting-the-error-total-duration-of-queries-in-the-last-30s-exceeds-limit-of-25m0s", + "why-am-i-missing-data-after-creating-a-new-default-retention-policy", + "why-am-i-seeing-a-409-error-in-some-of-my-data-node-logs", + "why-am-i-seeing-a-503-service-unavailable-error-in-my-meta-node-logs", + "why-am-i-seeing-error-writing-count-stats--partial-write-errors-in-my-data-node-logs", + "why-am-i-seeing-hinted-handoff-queue-not-empty-errors-in-my-data-node-logs", + "why-am-i-seeing-queue-is-full-errors-in-my-data-node-logs", + "why-am-i-seeing-unable-to-determine-if-hostname-is-a-meta-node-when-i-try-to-add-a-meta-node-with-influxd-ctl-join", + "why-are-my-into-queries-missing-data", + "why-arent-data-dropped-after-ive-altered-a-retention-policy", + "why-cant-i-query-boolean-field-values", + "why-do-my-queries-return-no-data-or-partial-data", + "why-do-these-results-include-timestamps-outside-of-the-queried-time-range", + "why-does-fillprevious-return-empty-results", + "why-does-influxdb-fail-to-parse-microsecond-units-in-the-configuration-file", + "why-does-my-query-return-epoch-0-as-the-timestamp", + "why-does-series-cardinality-matter", + "why-doesnt-my-query-return-data", + "why-dont-my-group-by-time-queries-return-timestamps-that-occur-after-now", + "why-indexing-matters-the-schema-case-study", + "why-is-influxdb-reporting-an-out-of-memory-oom-exception-when-my-system-has-free-memory", + "why-is-my-query-slow", + "why-is-my-query-with-a-where-or-time-clause-returning-empty-results", + "why-is-this-feature-being-eold", + "why-is-this-manual-process-required", + "why-isnt-data-dropped-after-i-update-a-buckets-retention-period", + "why-shouldnt-i-just-use-a-relational-database", + "why-your-schema-matters", + "width", + "wildcard-certificates-signed-by-a-certificate-authority", + "wildcard-expressions", + "wildcard-matching", + "will-i-lose-any-data-already-ingested", + "win-system", + "win_eventlog", + "win_perf_counters", + "win_services", + "win_system", + "win_wmi", + "window", + "window-aggregate-functions", + "window-amp-aggregate", + "window-by-calendar-month", + "window-by-calendar-months-and-years", + "window-by-week", + "window-clause", + "window-data-into-30-second-intervals", + "window-data-into-thirty-second-intervals", + "window-every-20-seconds-covering-40-second-periods", + "window-frames", + "window-functions", + "window-output-tables", + "window-your-data", + "windowing", + "windowing-data", + "windows", + "windows-default-paths", + "windows-file-system-overview", + "windows-newlines", + "windows-service-commands", + "windows-support", + "wire-format", + "wireguard", + "wireless", + "with-clause", + "withdraw-an-invitation", + "withfit", + "withminsse", + "work-the-shard-system", + "work-with-geo-temporal-data", + "work-with-multiple-data-sources", + "work-with-prometheus-metric-types", + "working-with-tags-fields-and-variables", + "working_cardinality", + "works-with-influxdb-cloud-bucket-schemas", + "works-with-influxdb-oss-2x", + "workspace", + "write", + "write-a-basic-query", + "write-a-field-value-10-as-a-float-to-influxdb", + "write-a-point-to-a-database-that-doesnt-exist", + "write-a-point-to-a-retention-policy-that-doesnt-exist", + "write-a-point-to-the-database-mydb-and-the-retention-policy-myrp", + "write-a-point-to-the-database-mydb-using-basic-authentication", + "write-a-point-to-the-database-mydb-using-http-authentication", + "write-a-point-to-the-database-mydb-with-a-nanosecond-timestamp", + "write-a-point-to-the-database-mydb-with-a-timestamp-in-seconds", + "write-a-point-to-the-database-mydb-with-the-local-servers-nanosecond-timestamp", + "write-a-point-with-a-nanosecond-timestamp-to-the-mydb-database", + "write-a-point-with-an-incorrect-timestamp", + "write-a-point-with-invalid-authentication-credentials", + "write-a-point-with-special-characters", + "write-a-point-with-the-local-servers-nanosecond-timestamp-to-the-mydb-database", + "write-a-single-line-of-line-protocol", + "write-aggregated-results-for-more-than-one-measurement-to-a-different-database-downsampling-with-backreferencing", + "write-aggregated-results-to-a-measurement-downsampling", + "write-ahead-log-wal", + "write-ahead-log-wal-persistence", + "write-an-external-plugin", + "write-an-integer-to-a-field-that-previously-accepted-a-float", + "write-and-query-limits-http-response-code", + "write-annotated-csv-data-from-a-compressed-file", + "write-annotated-csv-data-from-a-file", + "write-annotated-csv-data-from-a-url", + "write-annotated-csv-data-from-multiple-files", + "write-annotated-csv-data-from-multiple-sources", + "write-annotated-csv-data-from-multiple-urls", + "write-annotated-csv-data-using-rate-limiting", + "write-annotated-csv-data-via-stdin", + "write-annotated-csv-from-a-file", + "write-another-set-of-fields-to-new-measurement", + "write-api", + "write-api-behaviors", + "write-back-to-influxdb", + "write-buffer-size", + "write-buffer-size--1000", + "write-concurrency", + "write-concurrency--40", + "write-consistency", + "write-csv-data", + "write-csv-data-to-influxdb", + "write-csv-data-to-influxdb-cloud-dedicated", + "write-csv-data-to-influxdb-clustered", + "write-csv-data-with-the-influx-cli", + "write-data", + "write-data-from-a-file", + "write-data-in-line-protocol-syntax", + "write-data-to-a-non-default-retention-policy", + "write-data-to-influxdb", + "write-data-to-influxdb-with-go", + "write-data-to-influxdb-with-insert", + "write-data-to-influxdb-with-python", + "write-data-using-basic-authentication", + "write-data-using-influxdb-api-client-libraries", + "write-data-using-the-cli", + "write-data-using-the-http-api", + "write-data-using-the-influxdb-api", + "write-data-using-the-telegraf-influxdb-output-plugin", + "write-data-using-token-authentication", + "write-data-via-stdin", + "write-data-with-client-libraries", + "write-data-with-flux", + "write-data-with-insert", + "write-data-with-line-protocol", + "write-data-with-millisecond-unix-timestamps", + "write-data-with-no-code-third-party-technologies", + "write-data-with-output-plugins", + "write-data-with-the-client-library", + "write-data-with-the-influx-cli", + "write-data-with-the-influxdb-api", + "write-data-with-the-influxdb-javascript-client-library", + "write-data-with-third-party-technologies", + "write-examples", + "write-extended-annotated-csv-data-via-stdin", + "write-failed-for-shard---engine-cache-maximum-memory-size-exceeded", + "write-home-sensor-actions-data-to-influxdb", + "write-home-sensor-data-to-influxdb", + "write-http-endpoint", + "write-line-protocol", + "write-line-protocol-and-accept-partial-writes", + "write-line-protocol-data-to-influxdb-cloud-dedicated", + "write-line-protocol-data-to-influxdb-cloud-serverless", + "write-line-protocol-data-to-influxdb-clustered", + "write-line-protocol-from-a-compressed-file", + "write-line-protocol-from-a-file", + "write-line-protocol-from-a-url", + "write-line-protocol-from-multiple-files", + "write-line-protocol-from-multiple-sources", + "write-line-protocol-from-multiple-urls", + "write-line-protocol-to-influxdb", + "write-line-protocol-to-influxdb-3", + "write-line-protocol-to-influxdb-3-using-credentials-from-the-connection-profile", + "write-line-protocol-to-influxdb-3-with-a-custom-batch-size", + "write-line-protocol-to-influxdb-3-with-a-custom-client-timeout", + "write-line-protocol-to-influxdb-3-with-non-default-timestamp-precision", + "write-line-protocol-to-your-influxdb-3-server", + "write-line-protocol-using-the-influx-write-command", + "write-line-protocol-via-stdin", + "write-logs-10-examples", + "write-logs-to-a-file", + "write-min-max-and-mean-values-to-influxdb-cloud", + "write-multiple-data-points-in-one-request", + "write-multiple-lines-of-line-protocol", + "write-one-set-of-fields-to-a-new-measurement", + "write-optimizations", + "write-options", + "write-pivoted-data-to-influxdb", + "write-prometheus-metrics-to-influxdb", + "write-prometheus-metrics-to-influxdb-at-regular-intervals", + "write-raw-query-results-back-to-influxdb", + "write-requests-at-router", + "write-responses", + "write-sample-data-to-influxdb-with-line-protocol", + "write-several-points-to-the-database-by-separating-points-with-a-new-line", + "write-several-points-to-the-database-mydb-by-separating-points-with-a-new-line", + "write-several-points-to-the-database-mydb-from-the-file-datatxt", + "write-socket-based-user-defined-functions-udfs", + "write-status-metrics", + "write-telemetry-data", + "write-test-data-to-the-new-database", + "write-the-bitcoin-price-sample-data-to-influxdb", + "write-the-bitcoin-sample-data-to-influxdb", + "write-the-data-to-a-different-field", + "write-the-device-authorization-to-a-bucket", + "write-the-downsampled-data-back-to-influxdb", + "write-the-field-value--1234456e78-as-a-float-to-influxdb", + "write-the-field-value-1-as-a-float-to-influxdb", + "write-the-field-value-1-as-an-integer-to-influxdb", + "write-the-field-value-stringing-along-as-a-string-to-influxdb", + "write-the-field-value-true-as-a-boolean-to-influxdb", + "write-the-home-sensor-actions-data-to-influxdb", + "write-the-home-sensor-data-to-influxdb", + "write-the-line-protocol-to-influxdb", + "write-the-noaa-bay-area-weather-data-to-influxdb", + "write-the-random-number-sample-data-to-influxdb", + "write-the-results-of-a-query-to-a-fully-qualified-measurement", + "write-the-results-of-a-query-to-a-measurement", + "write-time-as-a-field-key-and-attempt-to-query-it", + "write-time-as-a-measurement-and-query-it", + "write-time-as-a-tag-key-and-attempt-to-query-it", + "write-timeout", + "write-timeout--10s", + "write-to-a-bucket-and-query-the-written-data", + "write-to-an-amazon-rds-postgresql-database", + "write-to-influxdb-v1x-and-influxdb-cloud", + "write-to-influxdb-v1x-and-influxdb-cloud-dedicated", + "write-to-influxdb-v1x-and-influxdb-cloud-serverless", + "write-to-influxdb-v1x-and-influxdb-clustered", + "write-to-influxdb-v1x-and-v2x", + "write-to-multiple-influxdb-buckets", + "write-to-the-v1-http-write-endpoint", + "write-tracing", + "write-tracing--false", + "write-valid-schemas", + "write-validation-and-memory-buffer", + "write_errors", + "writeblocked", + "writeblocked-1", + "writebytes", + "writeconsistency", + "writedata", + "writedrop", + "writedropped", + "writedropped-1", + "writedropped-2", + "writeerr", + "writeerr-1", + "writeerror", + "writefailures", + "writenodereq", + "writenodereq-1", + "writenodereqfail", + "writenodereqfail-1", + "writenodereqpoints", + "writenodereqpoints-1", + "writeok", + "writeok-1", + "writeok-2", + "writepartial-enterprise-only", + "writepointsdropped", + "writepointserr", + "writepointsok", + "writereq", + "writereq-1", + "writereqactive", + "writereqbytes", + "writereqdurationns", + "writereqerr", + "writereqok", + "writes", + "writes-in-a-cluster", + "writes-total", + "writeshardfail", + "writeshardpointsreq", + "writeshardreq", + "writeshardreq-1", + "writeshardreq-2", + "writeshardreq-3", + "writeshardreqpoints", + "writeshardreqpoints-1", + "writeshardreqpoints-2", + "writetimeout", + "writing-a-float-to-a-field-that-previously-accepted-booleans", + "writing-a-point-to-a-database-that-doesnt-exist", + "writing-a-task-to-be-editable-in-chronograf", + "writing-a-udf", + "writing-a-user-defined-function-udf", + "writing-and-exploring-data", + "writing-and-querying-for-multi-node-setups", + "writing-data", + "writing-data-1", + "writing-data-from-api-to-disk", + "writing-data-to-influxdb", + "writing-individual-fields-with-different-timestamps", + "writing-modes", + "writing-multiple-points", + "writing-points-from-a-file", + "x", + "x-axis", + "x509_cert", + "x509_crl", + "xml", + "xpath-json", + "xpath-messagepack", + "xpath-protocol-buffers", + "xpath_protobuf_file-mandatory", + "xpath_protobuf_import_paths-optional", + "xpath_protobuf_skip_bytes-optional", + "xpath_protobuf_type-mandatory", + "xtremio", + "y", + "y-axis", + "yandex_cloud_monitoring", + "yield-multiple-results-from-a-query", + "you-must-use-a-local-license-file", + "youtube", + "zabbix", + "zenoss", + "zenoss-cpu-alerttick", + "zenoss-package", + "zenoss-settings-in-kapacitorconf", + "zenoss_cpu_handleryaml", + "zfs", + "zipkin", + "zookeeper" + ] + } +} diff --git a/layouts/index.html b/layouts/index.html index 2e7c9f016..6bbd51ab6 100644 --- a/layouts/index.html +++ b/layouts/index.html @@ -19,7 +19,7 @@