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",

Reply via email to