This is an automated email from the ASF dual-hosted git repository.
Gerrrr pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/otava-website.git
The following commit(s) were added to refs/heads/master by this push:
new 42b1f42 docs: add InfluxDB guide (#27)
42b1f42 is described below
commit 42b1f42c3b0a0f6783c877e7e43d983476cd47ce
Author: adambernier <[email protected]>
AuthorDate: Tue Sep 1 20:41:26 2026 -0700
docs: add InfluxDB guide (#27)
---
docs/getting-started.md | 7 ++--
docs/influxdb.md | 103 ++++++++++++++++++++++++++++++++++++++++++++++++
docs/overview.md | 1 +
docs/sidebars.ts | 5 +++
4 files changed, 113 insertions(+), 3 deletions(-)
diff --git a/docs/getting-started.md b/docs/getting-started.md
index 4835a44..a1185b8 100644
--- a/docs/getting-started.md
+++ b/docs/getting-started.md
@@ -47,7 +47,7 @@ Copy the main configuration file `resources/otava.yaml` to
`~/.otava/otava.yaml`
:::tip
See docs on specific data sources to learn more about their configuration -
[CSV](csv.md), [Graphite](graphite.md),
-[PostgreSQL](postgresql.md), or [BigQuery](big-query.md).
+[PostgreSQL](postgresql.md), [BigQuery](big-query.md), or
[InfluxDB](influxdb.md).
:::
Alternatively, it is possible to leave the config file as is, and provide
credentials in the environment
@@ -57,8 +57,9 @@ Environment variables are interpolated before interpreting
the configuration fil
## Defining tests
All test configurations are defined in the main configuration file.
-Otava supports reading data from and publishing results to a CSV file,
[Graphite](https://graphiteapp.org/),
-[PostgreSQL](https://www.postgresql.org/), and
[BigQuery](https://cloud.google.com/bigquery).
+Otava supports reading data from a CSV file,
[Graphite](https://graphiteapp.org/),
+[PostgreSQL](https://www.postgresql.org/),
[BigQuery](https://cloud.google.com/bigquery), and
+[InfluxDB](https://www.influxdata.com/).
Tests are defined in the `tests` section. For example, the following
definition will import results of the test from a CSV file:
diff --git a/docs/influxdb.md b/docs/influxdb.md
new file mode 100644
index 0000000..7be55d7
--- /dev/null
+++ b/docs/influxdb.md
@@ -0,0 +1,103 @@
+---
+title: InfluxDB
+---
+
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ -->
+
+# Importing results from InfluxDB 3
+
+Otava imports query results from InfluxDB 3 Core or Enterprise through the
+[`influxdb3-python`](https://docs.influxdata.com/influxdb3/core/reference/client-libraries/v3/python/)
+client. SQL is the default query language; set `query_language: influxql` for
+InfluxQL queries.
+
+## Connection
+
+```yaml
+influxdb:
+ host: http://localhost:8181
+ database: performance
+ token: ${INFLUXDB_TOKEN}
+```
+
+The same settings are available through `INFLUXDB_HOST`, `INFLUXDB_DATABASE`,
+and `INFLUXDB_TOKEN`, or the `--influxdb-host`, `--influxdb-database`, and
+`--influxdb-token` command-line options. Command-line values take precedence
+over environment variables, which take precedence over YAML.
+
+## Reproducible example
+
+The bundled example starts InfluxDB 3 Core with authenticated, in-memory
+storage, seeds deterministic latency data, and runs Otava against it:
+
+```bash
+docker build -t apache/otava:latest .
+docker compose -f examples/influxdb/docker-compose.yaml run --rm otava \
+ analyze api_latency_sql --branch main --since 2025-01-01
+docker compose -f examples/influxdb/docker-compose.yaml down
+```
+
+Run `api_latency_influxql` instead to query the same data with InfluxQL.
+
+The admin token committed under `examples/influxdb/` is a fixed test
+credential, and the server discards its in-memory data when stopped. Both are
+for this local demonstration only. Use a securely generated token and durable
+object storage for production deployments.
+
+## Test configuration
+
+```yaml
+tests:
+ api_latency_sql:
+ type: influxdb
+ query_language: sql
+ query: |
+ SELECT time, branch, p95_ms, commit
+ FROM api_latency
+ WHERE branch = %{BRANCH}
+ ORDER BY time
+ time_column: time
+ attributes: [branch, commit]
+ metrics:
+ p95:
+ column: p95_ms
+ direction: -1
+ scale: 1
+
+ legacy_api_latency:
+ type: influxdb
+ query_language: influxql
+ query: SELECT time, branch, p95_ms FROM api_latency WHERE branch =
%{BRANCH}
+ attributes: [branch]
+ metrics: [p95_ms]
+```
+
+Metric definitions use `column`, `direction`, and `scale` as with the other
+SQL-backed importers. `%{BRANCH}` is replaced with an escaped string literal
+when `--branch` is supplied.
+
+Run the analysis with:
+
+```bash
+otava analyze api_latency_sql --branch main --last 100
+```
+
+InfluxDB is import-only in this release; Otava does not write change points
+back to InfluxDB.
diff --git a/docs/overview.md b/docs/overview.md
index 7b5bbb8..3d37581 100644
--- a/docs/overview.md
+++ b/docs/overview.md
@@ -34,5 +34,6 @@ under the License.
- [Graphite](graphite.md)
- [PostgreSQL](postgresql.md)
- [BigQuery](big-query.md)
+- [InfluxDB](influxdb.md)
- [CSV](csv.md)
- [Annotating Change Points in Grafana](grafana.md)
diff --git a/docs/sidebars.ts b/docs/sidebars.ts
index 9ba8f53..49e5252 100644
--- a/docs/sidebars.ts
+++ b/docs/sidebars.ts
@@ -83,6 +83,11 @@ const sidebars: SidebarsConfig = {
id: "big-query",
label: "BigQuery",
},
+ {
+ type: "doc",
+ id: "influxdb",
+ label: "InfluxDB",
+ },
{
type: "doc",
id: "csv",