Merge pull request #6107 from influxdata/docs/generalize-grafana-multinode
Enterprise multi-node recommendations and Python libraries updatepull/6123/merge
commit
3b0f77c7ae
|
@ -3,8 +3,7 @@
|
||||||
"baseUrl": ".",
|
"baseUrl": ".",
|
||||||
"paths": {
|
"paths": {
|
||||||
"*": [
|
"*": [
|
||||||
"*",
|
"*"
|
||||||
"../node_modules/*"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -523,27 +523,90 @@ influxdb3 create trigger \
|
||||||
|
|
||||||
### Install Python dependencies
|
### 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
|
```bash
|
||||||
# Install a package directly
|
# Use the CLI to install a Python package
|
||||||
influxdb3 install package pandas
|
influxdb3 install package pandas
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
{{% /code-tab-content %}}
|
||||||
|
|
||||||
|
{{% code-tab-content %}}
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# With Docker
|
# Use the CLI to install a Python package in a Docker container
|
||||||
docker exec -it CONTAINER_NAME influxdb3 install package pandas
|
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 (`<PLUGIN_DIR>/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" %}}
|
{{% 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 %}}
|
{{% /show-in %}}
|
||||||
|
|
Loading…
Reference in New Issue