From dafbb60147716b486caebfbe0ac8e098ee0692f0 Mon Sep 17 00:00:00 2001 From: Vishal Rana Date: Wed, 14 Oct 2026 08:16:57 -0700 Subject: [PATCH 1/2] docs: correct documentation against the code and restructure the README Audit every user-facing document against the current code and fix inaccuracies: listener defaults, chat enablement, secret-file rules, setup and recovery flows, MCP OAuth, HTTP routes, alert variable semantics, ingest batching and admission, Collector examples, testing and release notes, and llms.txt. Generated pages change through their generator sources. Restructure the README for a first-time visitor: a System overview screenshot (light and dark), what Fanout includes and its maturity, a quick start covering Docker, the native installer, telemetry, chat, and MCP, then comparison, architecture, and configuration summaries. Remove the unofficial throughput figure. Move ingest internals to the storage model page, DuckDB sizing to the configuration reference, and dotenv, generated-asset, and hook details to CONTRIBUTING. --- .env.example | 6 +- AGENTS.md | 1 + CONTRIBUTING.md | 36 +- README.md | 378 ++++++------------ SECURITY.md | 2 +- cmd/fanout-docgen/main.go | 6 +- cmd/fanout-docgen/routes.go | 23 +- docs/authentication.md | 20 +- docs/images/system-overview-dark.png | Bin 0 -> 132842 bytes docs/images/system-overview-light.png | Bin 0 -> 135733 bytes docs/operations.md | 1 + docs/testing.md | 13 +- internal/alert/types.go | 31 +- internal/config/config.go | 8 +- .../docs/explanation/authentication-modes.mdx | 16 +- .../content/docs/explanation/performance.mdx | 2 +- .../docs/explanation/storage-model.mdx | 5 + .../docs/explanation/why-one-binary.mdx | 6 +- .../content/docs/guides/connect-over-mcp.mdx | 5 +- .../src/content/docs/guides/set-up-alerts.mdx | 17 +- .../src/content/docs/guides/terminate-tls.mdx | 8 +- site/src/content/docs/guides/troubleshoot.mdx | 25 +- .../content/docs/guides/tune-retention.mdx | 6 +- site/src/content/docs/index.mdx | 2 +- .../docs/reference/alert-expressions.mdx | 22 +- .../content/docs/reference/configuration.mdx | 26 +- site/src/content/docs/reference/endpoints.mdx | 2 +- .../content/docs/reference/http-routes.mdx | 23 +- .../docs/reference/settings/ingest.mdx | 4 +- .../docs/reference/settings/storage.mdx | 2 +- site/src/content/docs/start/first-boot.mdx | 10 +- site/src/content/docs/start/install.mdx | 9 +- .../src/content/docs/start/send-telemetry.mdx | 18 +- site/src/content/docs/status/capabilities.mdx | 9 +- site/src/pages/llms.txt.ts | 4 +- 35 files changed, 353 insertions(+), 393 deletions(-) create mode 100644 docs/images/system-overview-dark.png create mode 100644 docs/images/system-overview-light.png diff --git a/.env.example b/.env.example index f3c44e18..35443f4b 100644 --- a/.env.example +++ b/.env.example @@ -82,16 +82,16 @@ # FANOUT_DUCKDB_THREADS; integer # Caps DuckDB's global query worker pool. Zero leaves DuckDB's own default in place (one worker per core). Set it to leave cores free for ingest on a query-heavy co-tenant host. -# Default: (empty) +# Default: 0 # FANOUT_DUCKDB_THREADS= # FANOUT_INGEST_BATCH_SIZE; integer -# Limits telemetry rows per batch; valid values are 1–50000. +# Sets the group-commit row target; valid values are 1–50000. Individual requests remain atomic and can exceed this target. # Default: 50000 # FANOUT_INGEST_BATCH_SIZE= # FANOUT_INGEST_MAX_IN_FLIGHT_BYTES; integer -# Caps the decoded telemetry the process will hold across concurrent requests. Concurrency is HTTP/2 streams times connections and each handler holds its batch until the commit is durable, so without a ceiling a burst is bounded only by memory. Zero is unbounded, which is the behaviour that predates this setting. +# Caps the decoded telemetry the process will hold across concurrent requests. Concurrency is HTTP/2 streams times connections and each handler holds its batch until the commit is durable, so without a ceiling a burst is bounded only by memory. Zero is unbounded. A single request is admitted when no other request holds budget, even if it exceeds the limit. # Default: 268435456 # FANOUT_INGEST_MAX_IN_FLIGHT_BYTES= diff --git a/AGENTS.md b/AGENTS.md index ac4ba3fe..71d54049 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -13,6 +13,7 @@ validate only the selected provider's endpoint. - Every `secret:"true"` field accepts `_FILE`. Both forms nonempty fail; secret files lose exactly one trailing LF or CRLF and must remain nonempty. + Unselected AI providers' value and file forms are ignored. Errors name variables and paths, never secret contents. No file-mode check. - `group` tags serve docgen only, using ai, alerts, auth, ingest, mcp, metrics, server, smtp, and storage. Run `just docs-generate` after schema changes and diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e8bbb304..f0d9e5f1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -6,21 +6,25 @@ Thanks for your interest. Issues and pull requests are both welcome. ```sh just install # browser dependencies and git hooks -just build # browser assets, then the binaries +just build # browser assets, then the binary just check # the full gate ``` You need Go 1.27.2 and a C/C++ toolchain on native Linux or macOS (amd64 or arm64), -[Bun](https://bun.sh), [just](https://just.systems), +[Bun](https://bun.sh), Node.js 24.19.0, [just](https://just.systems), [golangci-lint](https://golangci-lint.run/), and [Lefthook](https://github.com/evilmartians/lefthook). Running in local auth mode also requires a 32-character authentication code secret. SMTP and AI chat are -optional; selecting an AI provider requires its key — see [README](README.md#requirements). +optional; selecting an AI provider requires its key — see [README](README.md#build-from-source). Copy `.env.example` to ignored `.env` for personal development settings and -credentials. Every entry is commented out; uncomment only values you want to -supply. Copying the template sets nothing. After building, `just run` loads it with Node's native dotenv -parser; inherited environment values win. The binary validates the settings. +credentials. Every entry is commented out, with types, defaults, and secret file +forms in comments; uncomment only values you want to supply. Copying the template +sets nothing and preserves the image's environment defaults. After building, +`just run` loads optional `./.env` with Node's native dotenv +parser (`parseEnv`); inherited environment values win, including empty values. +The binary itself reads only process environment and validates the settings; +production launchers and deployments supply their own values. Keep this file out of Git and Docker inputs. See [runtime secret delivery](docs/operations.md#runtime-secret-delivery). @@ -57,9 +61,11 @@ and browser tests, then the Go suite under the race detector. Run `just e2e` with Google Chrome installed for the separate CI browser smoke suite. See [browser smoke testing](docs/testing.md) for coverage and failure artifacts. -`just install` also installs [Lefthook](https://lefthook.dev), which runs +`just install` also installs [Lefthook](https://lefthook.dev)'s Git hooks, which run formatting and linting on commit and the full gate on push. That is the fastest way to avoid a red CI run. +The pre-push hook may be skipped when Lefthook detects no changed files; +CI runs the same `just check` unconditionally and enforces the gate. The browser workspace uses `package.json` overrides for transitive security fixes that their direct dependencies have not locked yet. Keep those overrides @@ -72,8 +78,9 @@ only the existing build-only braces advisory exception documented in the justfil and its MCP app builds into `internal/mcp/apps`; both outputs are tracked in git because `go:embed` needs them present in a source checkout. If you change anything under `ui/`, run `just ui` and commit the regenerated output. +The binary is only as fresh as the last UI build. `just ui-check` fails when the embedded bytes do not match a fresh build, so -CI catches this, but it is friendlier to catch it yourself. +CI catches this; it is part of `just check`. **Diagrams are generated.** `docs/diagrams/*.svg` is rendered from the `.d2` source beside it. Edit the `.d2`, run `just diagrams`, and commit both. The @@ -98,8 +105,8 @@ credentials and endpoints keep the vendor's documented names. Unknown owned names fail startup, while unrelated shared-vendor/tool variables are ignored. Secrets use `secret:"true"` and automatically accept an `_FILE` form; do not set both forms nonempty. Run `just docs-generate` to regenerate the settings -reference and `.env.example`; `just docs-generate-check` verifies them. The -template leaves all values empty and documents defaults in comments. +reference and `.env.example`; `just docs-generate-check` verifies them. +The template leaves all values empty. Personal environment files and operator profiles stay ignored and outside Docker. Never shell-source dotenv. @@ -116,6 +123,15 @@ them manually with the same database guard used at startup. A version table without a positive applied version does not make an existing schema managed. DuckDB maintains its own query schema. +## Project layout + +```text +cmd/fanout/ process composition and the single entry point +internal/ ingest, storage, query, agent, MCP, auth, alerts +ui/host/ React browser host and shared MCP app renderer (build-time) +docs/diagrams/ d2 sources and rendered SVG +``` + ## Commits and pull requests Write commit messages that explain why the change is needed, not only what it diff --git a/README.md b/README.md index 9bfefa7b..4296c7a0 100644 --- a/README.md +++ b/README.md @@ -6,126 +6,62 @@ [![License: Apache 2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE) [![Go Reference](https://pkg.go.dev/badge/github.com/labstack/fanout.svg)](https://pkg.go.dev/github.com/labstack/fanout) -Fanout ingests OpenTelemetry data, durably publishes it as atomic Parquet -batches, and puts an AI agent in front of it — in one Go process with no -external dependencies to operate. Persistent trace indexes serve targeted -reads; embedded DuckDB handles SQL, broad scans, and rebuildable rollups. Point -an SDK or Collector at it, open the browser, and ask questions about your -telemetry in plain language. + + + Fanout System overview dashboard showing request rates, errors, latency, and service charts. + + +Fanout keeps OpenTelemetry traces, logs, and metrics in one binary and one data directory, with no +external services to operate. Fanout is pre-release and changes without migration paths; the browser +client, chat investigator, MCP tools, dashboards, and alerts are preview capabilities +([status](https://fanout.run/status/capabilities)). Start with the +[documentation](https://fanout.run) or run it below. + +- OTLP ingest over gRPC and HTTP, with local Parquet storage and DuckDB analytics. +- An investigation agent that answers questions about your telemetry in plain language. +- An MCP server for external agents using the same typed query tools. +- Dashboards and alerts across traces, logs, and metrics. -There is no separate ingester, query service, metadata database, object store, -or dashboard server to deploy. One binary, one data directory. - -## Architecture - -One process owns ingest, storage, query, alerting, the agent runtime, and an -MCP server. Everything below the dashed boundary is compiled into a single -executable, including the React client. - -![Fanout architecture](docs/diagrams/architecture.svg) - -Telemetry lands over OTLP/gRPC or OTLP/HTTP. Concurrent small requests may -share a group-commit batch, while up to four workers independently encode and -durably publish atomic Parquet directories with persistent trace indexes. -Targeted trace reads go through those indexes; DuckDB scans the same Parquet -for SQL and maintains rebuildable service, endpoint, and edge rollups. The -browser client, an in-process agent, and any -external MCP host all reach the same typed observability contract rather than -issuing raw SQL. - -Attribute and resource values support up to 128 nested arrays or objects. -An export that exceeds this limit is rejected in full with OTLP -`INVALID_ARGUMENT` (HTTP 400); accepted values retain their original types. - -Parquet is authoritative telemetry, DuckDB query state is rebuildable, and -SQLite is reserved for transactional product state. Native compaction -prepares replacements while reads continue and briefly gates readers only for -the crash-safe namespace swap: - -![Fanout persistence](docs/diagrams/persistence.svg) - -Application state (users, sessions, dashboards, alert rules, agent threads) -lives in the control SQLite database and never sits on the telemetry write -path. The published Parquet directories are self-describing, so startup can -discover the authoritative batch set directly from the filesystem. - -## Performance - -The independent [Fanout Bench](https://github.com/labstack/fanout-bench) -project measures authenticated ingest and optional dashboard read load against -your hardware. It uses the official OpenTelemetry generator and publishes raw, -reproducible evidence separately from the production binary. Ingest, indexed -reads, DuckDB analytics, and native Parquet maintenance have separate -coordination paths but still compete for the same CPU, memory bandwidth, -filesystem cache, and disk. - -The current publication candidate is **296,196 accepted OpenTelemetry items per -second** sustained for five minutes with traces, logs, and metrics arriving -together on a machine with eight logical CPUs and 15.6 GiB of memory. It is a -single run, and the benchmark harness that produced it carried uncommitted -local changes, so it is not Fanout's official headline yet. The [performance methodology](https://fanout.run/explanation/performance) -shows the signal breakdown, quality gates, limitations, and publication bar. - -## How it compares - -Fanout is a single node holding traces, logs, and metrics for a system you can -reason about from one place. That premise, rather than any single feature, is -what separates it from its neighbours. - -| If you use | Where Fanout differs | -| --- | --- | -| **Grafana with Loki, Tempo, and Mimir** | That stack keeps a service and a query language per signal, plus object storage underneath. Fanout keeps one process, one data directory, and one typed contract across all three signals, at the cost of the horizontal scale those components are built for. | -| **SigNoz** | Both are OTLP-native and self-hosted. SigNoz composes a collector, ClickHouse, and query services; Fanout compiles ingest, authoritative Parquet storage, indexed trace reads, DuckDB analytics, alerting, and the browser client into one binary. | -| **Jaeger** | Jaeger covers traces and expects a storage backend you run separately. Fanout ingests traces, logs, and metrics into the same store, with nothing else to deploy. | -| **Prometheus with Grafana** | Prometheus pulls metrics and is excellent at them. Fanout accepts pushed OTLP for all three signals and is built around investigating a specific incident rather than maintaining long-range metric series. | -| **Datadog**, **Honeycomb**, **Grafana Cloud** | Those are managed services: someone else runs the storage, the scaling, and the upgrades, and your telemetry leaves your network to get there. Fanout is a binary you run, on data that stays on your disk. | -| **An OpenTelemetry Collector piped into ClickHouse** | The same shape, assembled by hand: collector, database, dashboards, and the glue between them. Fanout is that assembly as one program, with an agent and an MCP server already wired to the same query contract. | +## Quick start -Fanout is a single node. It has no clustering, no replication, and no object -tier; a deployment that outgrows one machine's disk and CPU has outgrown -Fanout. +### Docker -## Requirements +```sh +docker run --name fanout -p 7520:7520 \ + -v fanout-data:/var/lib/fanout/data \ + -e FANOUT_AUTH_CODE_SECRET=$(openssl rand -hex 32) \ + labstack/fanout:latest +``` -- **Go 1.27.2 and a C/C++ toolchain** on native Linux or macOS, amd64 or arm64. - Build with `just build` or `bash scripts/with-duckdb.sh go build ./cmd/fanout`; - the wrapper supplies DuckDB's pinned headers, static libraries, and CGO flags. - The first build needs network access to download the checksum-verified engine. -- **[Bun](https://bun.sh)** — compiles the browser assets -- **[just](https://just.systems)** — task runner -- A 32-character **authentication code secret** +Open the one-time setup URL printed by the container and create the first administrator. Fanout +displays the ingest token exactly once; save it with your collector secrets. For later sign-in +without SMTP, mint a 15-minute, single-use link against the running container's control database: -SMTP and an AI provider are optional. Without SMTP, an operator can mint a -short-lived login link from the local Fanout binary. With no AI provider selected, ingest, -dashboards, traces, logs, metrics, and MCP continue to work; only investigation -chat and AI-assisted controls are hidden. +```sh +docker exec fanout fanout login-link admin@example.com +``` -## Quick start +The UI, API, MCP, and both OTLP transports share port `7520`. See +[installation](https://fanout.run/start/install) for image defaults and bind-mount ownership, and +[first boot](https://fanout.run/start/first-boot) for setup and SMTP login. ### Native binary -Release archives support Linux and macOS on amd64 and arm64. The installer -verifies the selected archive against the release checksum before extracting: +Install a checksum-verified release for Linux or macOS, amd64 or arm64: ```sh curl -fsSL https://raw.githubusercontent.com/labstack/fanout/main/scripts/install.sh | sh +export FANOUT_AUTH_CODE_SECRET=$(openssl rand -hex 32) +fanout ``` -Set `FANOUT_VERSION=v{YYYY.M}.{N}` to pin a release and `FANOUT_PREFIX` to -choose the installation directory. +Set `FANOUT_VERSION=v{YYYY.M}.{N}` to pin a release and `FANOUT_PREFIX` to choose the installation +directory. Native installs bind `127.0.0.1:7520`; set `FANOUT_ADDR=:7520` for remote access, then +follow the same first-boot setup. -### Docker - -```sh -docker run --name fanout -p 7520:7520 \ - -v fanout-data:/var/lib/fanout/data \ - -e FANOUT_AUTH_CODE_SECRET=$(openssl rand -hex 32) \ - labstack/fanout:latest -``` +### Send telemetry -Open the one-time setup URL printed by the container and create the first -administrator. Fanout displays the ingest token exactly once; save it with -your collector secrets. A standard OTLP/HTTP exporter can then use: +A standard OTLP/HTTP exporter can use the saved ingest token: ```sh export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf @@ -149,98 +85,56 @@ service: logs: { receivers: [otlp], exporters: [otlp_http/fanout] } ``` -This assumes the Collector's existing `otlp` receiver and an environment -variable containing the one-time token. Replace `fanout` with the private -hostname reachable from that Collector. +Use an existing `otlp` receiver, set `INGEST_TOKEN`, and replace `fanout` with the Collector's +reachable private hostname. OTLP/gRPC uses `localhost:7520` locally; see [send +telemetry](https://fanout.run/start/send-telemetry) for TLS and HTTP/2 setup. -The equivalent OTLP/gRPC endpoint is `localhost:7520` (plaintext locally). -Behind a TLS proxy, both transports use the public origin; gRPC requires -HTTP/2 to Fanout. -For later sign-in -without SMTP, mint a 15-minute, single-use link against the running -container's control database: - -```sh -docker exec fanout fanout login-link admin@example.com -``` +### Enable chat Select `FANOUT_AI_PROVIDER=anthropic` and inject `ANTHROPIC_API_KEY`, or select -`FANOUT_AI_PROVIDER=openai` and inject `OPENAI_API_KEY`, to enable chat. The -selected provider requires its key at startup. Configure all four SMTP settings -(`FANOUT_SMTP_HOST`, `FANOUT_SMTP_USERNAME`, `FANOUT_SMTP_PASSWORD`, and -`FANOUT_SMTP_FROM`) to enable email-code login. +`FANOUT_AI_PROVIDER=openai` and inject `OPENAI_API_KEY`, then restart Fanout; the selected provider +requires its key at startup. With no provider, chat is disabled and the other features still work. +See [AI settings](https://fanout.run/reference/settings/ai). -The distroless image runs unprivileged as UID 65532. A bind-mounted host directory at -`/var/lib/fanout/data` must be writable by that user; a named volume, as above, -needs no such handling. +### Connect an MCP client -The image sets `FANOUT_ADDR=:7520` and -`FANOUT_DATA_DIR=/var/lib/fanout/data`. Override settings with deployment -environment values or mounted secret files. Publish port `7520`; the UI, API, -MCP, OTLP/HTTP, and OTLP/gRPC share this listener. +Set `FANOUT_PUBLIC_URL` to your stable, externally reachable HTTPS origin, then point a remote MCP +client at that origin's `/mcp` endpoint. The client discovers and registers through OAuth; you +authorize its scopes in the browser. See [connect over +MCP](https://fanout.run/guides/connect-over-mcp) for setup and permissions. -### From source +## How it compares -```sh -git clone https://github.com/labstack/fanout.git -cd fanout -just install # browser dependencies and git hooks -just build # browser assets, then the binaries -``` +| If you use | Where Fanout differs | +| --- | --- | +| **Grafana with Loki, Tempo, and Mimir** | That stack keeps a service and a query language per signal, plus object storage underneath. Fanout keeps one process, one data directory, and one typed contract across all three signals, at the cost of the horizontal scale those components are built for. | +| **SigNoz** | Both are OTLP-native and self-hosted. SigNoz composes a collector, ClickHouse, and query services; Fanout compiles ingest, authoritative Parquet storage, indexed trace reads, DuckDB analytics, alerting, and the browser client into one binary. | +| **Jaeger** | Jaeger covers traces and expects a storage backend you run separately. Fanout ingests traces, logs, and metrics into the same store, with nothing else to deploy. | +| **Prometheus with Grafana** | Prometheus pulls metrics and is excellent at them. Fanout accepts pushed OTLP for all three signals and is built around investigating a specific incident rather than maintaining long-range metric series. | +| **Datadog**, **Honeycomb**, **Grafana Cloud** | Those are managed services: someone else runs the storage, the scaling, and the upgrades, and your telemetry leaves your network to get there. Fanout is a binary you run, on data that stays on your disk. | +| **An OpenTelemetry Collector piped into ClickHouse** | The same shape, assembled by hand: collector, database, dashboards, and the glue between them. Fanout is that assembly as one program, with an agent and an MCP server already wired to the same query contract. | -Run it with the minimum configuration: +Fanout is a single node. It has no clustering, no replication, and no object tier; a deployment that +outgrows one machine's disk and CPU has outgrown Fanout. -```sh -export FANOUT_AUTH_CODE_SECRET=$(openssl rand -hex 32) # must be 32+ characters +## Architecture -./bin/fanout -``` +One process contains ingest, storage, query, alerts, the agent, MCP, and the React client. Browser +and agent clients share a typed observability contract. -Optionally select `FANOUT_AI_PROVIDER=anthropic` with `ANTHROPIC_API_KEY`, or -`FANOUT_AI_PROVIDER=openai` with `OPENAI_API_KEY`, for chat. Set the SMTP variables shown above for -email-code login. Without SMTP, run `./bin/fanout login-link -admin@example.com` from the same configuration and data directory. +![Fanout architecture](docs/diagrams/architecture.svg) -Fanout serves the UI, API, MCP, OTLP/gRPC and OTLP/HTTP on -. The first account -created becomes the administrator and receives the ingest token once. +Parquet holds telemetry, DuckDB query state is rebuildable, and SQLite holds transactional product +state. See [how storage works](https://fanout.run/explanation/storage-model) for durable ingest, +indexed reads, and compaction while reads continue. -Point any OpenTelemetry collector or SDK at either OTLP endpoint with the -ingest token. Use the separate -[Fanout Bench](https://github.com/labstack/fanout-bench) project for controlled -capacity tests. +![Fanout persistence](docs/diagrams/persistence.svg) ## Configuration -Configuration is resolved once at startup from built-in defaults followed by -nonempty process environment values, and validated before data files or -listeners open. Every change requires a restart. Native installs bind -`127.0.0.1:7520` by default; set `FANOUT_ADDR=:7520` for other hosts to reach it. - -Custom settings use `FANOUT_` plus a clear name, adding the area only when it -clarifies. Vendor credentials and endpoints keep their documented names: -`ANTHROPIC_API_KEY`, `ANTHROPIC_BASE_URL`, `OPENAI_API_KEY`, and -`OPENAI_BASE_URL`. Unknown `FANOUT_` variables fail startup, except for -platform-injected service-discovery names. Unrelated vendor/tool variables are -ignored. Empty values mean unset. Bools, integers, and Go durations are parsed -as their declared types. - -[`.env.example`](.env.example) is generated from -[`internal/config/config.go`](internal/config/config.go), with every value -empty and every entry commented out. Types, defaults, and secret file forms -are documented in comments. Copying it sets nothing and preserves image ENV. -Copy it to ignored `.env` and uncomment personal settings and development -credentials as needed. After building, `just run` uses Node's -`parseEnv` to load optional `./.env`, then lets inherited environment values -win, including empty values. The binary itself reads only process environment; -production launchers and deployments supply their own values. - -Every secret also accepts a file path through `_FILE`: -`FANOUT_AUTH_CODE_SECRET_FILE`, `FANOUT_OIDC_CLIENT_SECRET_FILE`, -`FANOUT_SMTP_PASSWORD_FILE`, `FANOUT_METRICS_TOKEN_FILE`, -`ANTHROPIC_API_KEY_FILE`, and `OPENAI_API_KEY_FILE`. Set either the value or -its file path. Setting both nonempty fails startup. Fanout strips exactly one -trailing LF or CRLF from a secret file and rejects an empty result. +Configuration is environment-only: built-in defaults followed by nonempty process environment +values, validated before data files or listeners open. Settings are read once at startup; every +change requires a restart. | Environment variable | Default | Purpose | | --- | --- | --- | @@ -254,78 +148,65 @@ trailing LF or CRLF from a secret file and rejects an empty result. | `FANOUT_RETENTION_DAYS` | `30` | Telemetry retention window | | `FANOUT_MCP_ENABLED` | `true` | Serve the MCP endpoint at `/mcp` | -Chat requires an explicit provider and its credential. Inherited keys never -enable it. Only the selected provider's endpoint is validated and used. -`FANOUT_AI_MODEL` selects the model. `ANTHROPIC_BASE_URL` defaults to -`https://api.anthropic.com`; Fanout appends `/v1/messages`. `OPENAI_BASE_URL` -defaults to `https://api.openai.com/v1`; Fanout appends `/responses`. -Both preserve gateway prefixes and accept a trailing slash. The selected URL -must use HTTP(S) without credentials, a query, or a fragment. - -See [runtime secret delivery](docs/operations.md#runtime-secret-delivery) for -deployment examples. This public repository excludes operator secret profiles -and private recipient policy. Run `just docs-generate` after changing the -schema; `just docs-generate-check` verifies `.env.example` and the reference. +Every secret accepts `_FILE` instead of its value; see the [settings +reference](https://fanout.run/reference/configuration) for validation and [runtime secret +delivery](docs/operations.md#runtime-secret-delivery) for deployment examples. ### Advanced DuckDB sizing -Most deployments should not set DuckDB variables. Give the process or -container the CPU and memory limits it may use; at startup Fanout reserves -headroom for Go and sizes the DuckDB connection pool from available CPUs. The -resolved values and whether Fanout chose them are available in the -`runtime_sizing` block returned by `/readyz`. +Fanout sizes DuckDB automatically; measured workloads can override memory, connections, and threads +as described in [DuckDB sizing](https://fanout.run/reference/configuration#duckdb-sizing). -These variables are escape hatches for measured, unusual workloads: +For TLS, health checks, backups, upgrades, retention, and recovery, see the [operator +runbook](docs/operations.md). -| Variable | Automatic behavior | When to override | -| --- | --- | --- | -| `FANOUT_DUCKDB_MEMORY` | 60% of the container or host memory available to Fanout | A measured co-tenant workload needs a different Go/DuckDB split | -| `FANOUT_DUCKDB_MAX_CONNECTIONS` | Available Go CPUs, bounded to 2–16 connections | Query concurrency has been benchmarked for this machine | -| `FANOUT_DUCKDB_THREADS` | DuckDB chooses its own query worker count | Query-heavy work must leave specific cores free for ingest | +## Performance -An explicit value always wins. Startup logs and `/readyz` report the detected -host and cgroup limits, the selected source, and whether detection was -incomplete. If Fanout cannot conclusively inspect a container limit, it warns; -set `FANOUT_DUCKDB_MEMORY` for a guaranteed bound. +[Fanout Bench](https://github.com/labstack/fanout-bench) measures authenticated ingest and optional +dashboard read load on your hardware; the [performance +methodology](https://fanout.run/explanation/performance) covers reproducible evidence and +publication requirements. -For TLS and reverse proxies, health checks, backups and restores, upgrades, -retention, and recovery, see the [operator runbook](docs/operations.md). +## Build from source -## Development +- **Go 1.27.2 and a C/C++ toolchain** on native Linux or macOS, amd64 or arm64. + Build with `just build` or `bash scripts/with-duckdb.sh go build ./cmd/fanout`; + the wrapper supplies DuckDB's pinned headers, static libraries, and CGO flags. + The first build needs network access to download the checksum-verified engine. +- **[Bun](https://bun.sh)** — compiles the browser assets +- **Node.js 24.19.0** — runs development helpers and builds the documentation site +- **[just](https://just.systems)** — task runner +- A 32-character **authentication code secret** ```sh -just # list every recipe -just check # the full gate: format, lint, asset freshness, and tests -just test # Go tests -just ui # rebuild the embedded browser assets +git clone https://github.com/labstack/fanout.git +cd fanout +just install # browser dependencies and git hooks +just build # browser assets, then the binary ``` -The `ui/host` workspace builds the SPA and MCP app **into** `internal/ui/dist` and -`internal/mcp/apps`, and those outputs are committed because `go:embed` needs -them present in a source checkout. The binary is therefore only ever as fresh -as the last UI build. `just ui-check` compares temporary builds of both outputs -and fails if the embedded bytes no longer match. It is part of `just check` and runs in CI. - -[Lefthook](https://lefthook.dev) runs formatting and linting on commit and the -full gate on push; `just install` wires it up. The pre-push hook is a -convenience and lefthook may skip it when it detects no changed files — CI runs -the same `just check` unconditionally, and that is what actually enforces it. +Run it with the minimum configuration: -## Project layout +```sh +export FANOUT_AUTH_CODE_SECRET=$(openssl rand -hex 32) # must be 32+ characters -```text -cmd/fanout/ process composition and the single entry point -internal/ ingest, storage, query, agent, MCP, auth, alerts -ui/host/ React browser host and shared MCP app renderer (build-time) -docs/diagrams/ d2 sources and rendered SVG +./bin/fanout ``` +Open and follow first-boot setup. SMTP and chat are optional; without SMTP, +run `./bin/fanout login-link admin@example.com` with the same configuration and data directory. + +## Development + +Run `just` to list recipes, `just check` for the full gate, `just test` for Go tests, and `just ui` +to rebuild embedded browser assets. See [CONTRIBUTING.md](CONTRIBUTING.md) for environment setup, +generated assets, hooks, and project layout. + ## Releases -Versions are CalVer — `v{YYYY.M}.{N}`, numbered from 0 within each month, so -`v2026.8.1` is the second release of August 2026. Pushing a tag publishes the -same release manifest to Docker Hub and GHCR and moves both `latest` tags. -GHCR remains the canonical registry and also carries development images: +Versions are CalVer — `v{YYYY.M}.{N}`, numbered from 0 within each month. Tagged releases publish +identical manifests to Docker Hub (`labstack/fanout`) and GHCR (`ghcr.io/labstack/fanout`); GHCR is +canonical and also carries development images. | Image tag | Points at | | --- | --- | @@ -336,33 +217,20 @@ GHCR remains the canonical registry and also carries development images: | `ghcr.io/labstack/fanout:main` | the tip of `main` | | `ghcr.io/labstack/fanout:sha-` | one specific commit | -Release images are multi-architecture for `linux/amd64` and `linux/arm64`. -Release archives provide Linux and macOS binaries for amd64 and arm64; every -artifact is built on a native runner because DuckDB requires cgo. -The complete release and verification contract is in -[docs/release.md](docs/release.md). +See [docs/release.md](docs/release.md) for platforms, checksums, provenance, and verification. ## Contributing -Issues and pull requests are welcome — see [CONTRIBUTING.md](CONTRIBUTING.md). -Run `just check` and `just test-race` before opening a pull request; together -they match CI. For anything security-related, follow [SECURITY.md](SECURITY.md) -instead of opening an issue. +Issues and pull requests are welcome; follow [CONTRIBUTING.md](CONTRIBUTING.md) and run `just check` +and `just test-race` before opening a pull request. Report security issues through +[SECURITY.md](SECURITY.md). ## Scope -This repository is Fanout itself, and it builds to a working binary with no -other repository involved. Not included: LabStack's own deployment -configuration, uptime monitoring, and public demo instance. Those describe how -we operate Fanout, not what it does. - -The documentation site in [`site/`](site) is included, and is the exception that -proves the rule: it is not marketing copy but the product's own reference, and -part of it is generated. `cmd/fanout-docgen` writes every settings page from the -same `internal/config` type the loader binds, and `just check` fails when a -committed page no longer matches it. Documentation that can drift from the -binary is documentation that eventually lies about it, and the only place that -check can run is next to the code it checks. +This repository builds Fanout without another repository; LabStack's deployment configuration, +uptime monitoring, and public demo instance are not included. The documentation site in +[`site/`](site) is included, with settings pages generated from the same `internal/config` type the +loader binds and checked by `just check`. ## License diff --git a/SECURITY.md b/SECURITY.md index 7eb0bcfa..f952a29d 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -32,7 +32,7 @@ interchangeable. A finding that crosses those boundaries is in scope. ## Supported versions -Fanout is pre-1.0 and moves quickly. Fixes land on `main`, and only the latest +Fanout uses CalVer and moves quickly. Fixes land on `main`, and only the latest release is supported. There are no backports to earlier tags. ## Operating Fanout safely diff --git a/cmd/fanout-docgen/main.go b/cmd/fanout-docgen/main.go index 5ece1e13..df805d14 100644 --- a/cmd/fanout-docgen/main.go +++ b/cmd/fanout-docgen/main.go @@ -247,9 +247,9 @@ func renderAlertEnv(vars []field) []byte { b.WriteString("against one service's rollup for the current window. These are the values it\n") b.WriteString("can read — the names below match the variables declared and bound by the\n") b.WriteString("evaluator.\n\n") - b.WriteString("Rules are type-checked against these declared variables when saved through the\n") - b.WriteString("API. Unknown variables, type mistakes, and non-boolean results are rejected\n") - b.WriteString("before the rule is saved.\n\n") + b.WriteString("Nonempty expressions supplied when creating or replacing rules through the\n") + b.WriteString("API are type-checked against these declared variables. Unknown variables,\n") + b.WriteString("type mistakes, and non-boolean results are rejected before the rule is saved.\n\n") b.WriteString("Use CEL's standard operators and functions, such as `&&`, `||`, `!`, and\n") b.WriteString("`service.startsWith(\"checkout\")`. Numeric variables are doubles; cross-type\n") b.WriteString("numeric comparisons let you compare them with integer literals, as in\n") diff --git a/cmd/fanout-docgen/routes.go b/cmd/fanout-docgen/routes.go index c71121aa..8181912a 100644 --- a/cmd/fanout-docgen/routes.go +++ b/cmd/fanout-docgen/routes.go @@ -244,7 +244,8 @@ func renderRoutes(routes []api.RouteDoc) []byte { b.WriteString("{/* Generated by cmd/fanout-docgen from internal/api, internal/agent and cmd/fanout. Edit the generator, not this page. */}\n\n") - b.WriteString("Every route below is served on `FANOUT_ADDR` (`:7520` by default).\n") + b.WriteString("Every route below is served on `FANOUT_ADDR` (`127.0.0.1:7520` by default;\n") + b.WriteString("the image sets `:7520`).\n") b.WriteString("OTLP shares this listener but uses its own handlers and ingest credential; see\n") b.WriteString("[send your first telemetry](/start/send-telemetry).\n\n") @@ -260,8 +261,10 @@ func renderRoutes(routes []api.RouteDoc) []byte { b.WriteString(" **not** the default. Enabling it also turns on mutex and block sampling.\n") b.WriteString("- `/mcp`, `/api/mcp`, `/oauth/*` and `/.well-known/*` — only when\n") b.WriteString(" `FANOUT_MCP_ENABLED` is true, which **is** the default.\n") - b.WriteString("- `/api/agent/*` — only when an AI provider key is\n") - b.WriteString(" configured. Without one the investigator is not registered at all.\n\n") + b.WriteString("- `/api/agent/*` — only when `FANOUT_AI_PROVIDER` selects `anthropic` or\n") + b.WriteString(" `openai`, with that provider's required key. An empty provider disables chat.\n") + b.WriteString("- `/api/auth/oidc/start` and `/api/auth/oidc/callback` — only in\n") + b.WriteString(" `FANOUT_AUTH_MODE=oidc`.\n\n") b.WriteString("Everything else is always registered. A path shown with `:name` or `*` is the\n") b.WriteString("pattern Echo matches on, not a literal URL.\n") b.WriteString(":::\n\n") @@ -274,12 +277,12 @@ func renderRoutes(routes []api.RouteDoc) []byte { b.WriteString("The supported programmatic interface is **MCP**, at `/mcp` — see\n") b.WriteString("[MCP tools](/reference/mcp-tools). The stable non-MCP surfaces are OTLP\n") b.WriteString("ingest, and the operational endpoints in [endpoints](/reference/endpoints).\n\n") - b.WriteString("Two exceptions worth knowing, because HTTP is currently the only way to reach\n") - b.WriteString("them: alert rules (`/api/alerting/rules`, `/api/alerts`) and ingest-token rotation\n") - b.WriteString("(`/api/settings/ingest`). Neither has a browser page yet.\n") + b.WriteString("Alert rules (`/api/alerting/rules`, `/api/alerts`) currently have no browser\n") + b.WriteString("page. Ingest-token rotation uses `POST /api/settings/ingest/token/rotate`\n") + b.WriteString("and is also available to administrators on **Connect telemetry**.\n") b.WriteString(":::\n\n") - b.WriteString("## Errors\n\nApplication API errors, including unknown routes and wrong methods, return exactly\n`{\"code\":\"bad_request\",\"message\":\"Safe explanation\"}`. Codes are stable\nsnake_case identifiers; clients branch on `code` rather than message text.\nInvalid dashboard or panel specs also include `problems` with field paths,\nmessages and optional hints. Every error response uses `Cache-Control: no-store`;\nHEAD errors have no body. Server failures return a short, safe message; the\nunderlying error is logged and never returned.\n\nDefault codes by HTTP status:\n\n| Status | Code |\n|---|---|\n| 400 | `bad_request` |\n| 401 | `unauthorized` |\n| 403 | `forbidden` |\n| 404 | `not_found` |\n| 405 | `method_not_allowed` |\n| 409 | `conflict` |\n| 413 | `payload_too_large` |\n| 415 | `unsupported_media_type` |\n| 422 | `unprocessable` |\n| 429 | `rate_limited` |\n| 500 | `internal` |\n| 502 | `bad_gateway` |\n| 503 | `unavailable` |\n| 504 | `timeout` |\n\nOther 4xx statuses use `bad_request`; other 5xx statuses use `internal`.\nSpecific conditions use `already_current`, `dashboard_version_not_found`,\n`dashboard_version_conflict`, `invalid_spec` and `last_active_administrator`.\nTool failures carry `error: {code, message}` inside the tool result.\nPanel execution results keep their own status and error fields.\nOAuth, OTLP/gRPC, MCP JSON-RPC and AG-UI run errors keep their protocol spelling.\nOperational responses at `/healthz`, `/readyz` and `/metrics` keep their bodies.\n\n") + b.WriteString("## Errors\n\nApplication API errors, including unknown routes and wrong methods, return objects shaped like\n`{\"code\":\"bad_request\",\"message\":\"Safe explanation\"}`. Codes are stable\nsnake_case identifiers; clients branch on `code` rather than message text.\nInvalid dashboard or panel specs also include `problems` with field paths,\nmessages and optional hints. Every error response uses `Cache-Control: no-store`;\nHEAD errors have no body. Server failures return a short, safe message; the\nunderlying error is logged and never returned.\n\nDefault codes by HTTP status:\n\n| Status | Code |\n|---|---|\n| 400 | `bad_request` |\n| 401 | `unauthorized` |\n| 403 | `forbidden` |\n| 404 | `not_found` |\n| 405 | `method_not_allowed` |\n| 409 | `conflict` |\n| 413 | `payload_too_large` |\n| 415 | `unsupported_media_type` |\n| 422 | `unprocessable` |\n| 429 | `rate_limited` |\n| 500 | `internal` |\n| 502 | `bad_gateway` |\n| 503 | `unavailable` |\n| 504 | `timeout` |\n\nOther 4xx statuses use `bad_request`; other 5xx statuses use `internal`.\nSpecific conditions use `already_current`, `dashboard_version_not_found`,\n`dashboard_version_conflict`, `invalid_spec` and `last_active_administrator`.\nTool failures carry `error: {code, message}` inside the tool result.\nPanel execution results keep their own status and error fields.\nOAuth, OTLP/gRPC, MCP JSON-RPC and AG-UI run errors keep their protocol spelling.\nOperational responses at `/healthz`, `/readyz` and `/metrics` keep their bodies.\n\n") b.WriteString("The **Requires** column is not a description of the rule. It is the answer the\n") b.WriteString("authorization middleware gives for that exact method and path, so a route\n") @@ -302,10 +305,10 @@ func renderRoutes(routes []api.RouteDoc) []byte { b.WriteString("- **a named capability** — the caller's role must carry it.\n") b.WriteString("- **or a service credential** — additionally reachable without a browser\n") b.WriteString(" session, which is how a scraper reaches the metrics endpoint.\n\n") - b.WriteString("A method of `Any` means the route answers every verb, and the middleware\n") + b.WriteString("A method of `Any` means the route is registered for every verb, and the middleware\n") b.WriteString("gives the same answer for all of them — where it would not, this page fails\n") - b.WriteString("to build rather than pick one. `GET /*` is the single-page application:\n") - b.WriteString("anything not matched above is served the client, which is why it is public.\n") + b.WriteString("to build rather than pick one. `GET /*` serves the single-page application\n") + b.WriteString("for browser paths. Unknown `/api/*` and OTLP paths return errors instead.\n") return []byte(b.String()) } diff --git a/docs/authentication.md b/docs/authentication.md index 9308ab86..5d977091 100644 --- a/docs/authentication.md +++ b/docs/authentication.md @@ -12,7 +12,7 @@ stderr containing a **setup URL**: ============================================================ FANOUT SETUP - Open: http://127.0.0.1:8080/login?setup_token= + Open: http://127.0.0.1:7520/login?setup_token= Valid: one-time use, expires in 1 hour Note: this URL disappears after the first admin is created Warn: it contains an administrator credential — this output may @@ -27,8 +27,9 @@ Properties worth knowing: - It is consumed the moment the first administrator is committed, before any other setup work. A later failure in that request does not leave a live credential behind. -- It creates exactly **one** administrator. Presenting it again after setup is - complete returns `403` and establishes no session. +- It creates exactly **one** administrator. A consumed credential returns `410` + and establishes no session; a concurrent request reaching account creation + after the administrator already exists returns `403`. - Ingest stays closed until setup succeeds. - The banner is printed once. Restarting only reopens setup while the user count is still zero. @@ -47,7 +48,8 @@ without them, an operator with access to the control database can mint a login link. OIDC mode instead requires an HTTPS issuer, a client, and an HTTPS `FANOUT_PUBLIC_URL`. -If you configure SMTP, send yourself a code and confirm it arrives. Credentials +After setup in local mode, send yourself a code if SMTP is configured and +confirm it arrives. Credentials can be wrong, the relay can refuse the sender, and mail can land in spam. A login link remains available when delivery fails. @@ -167,11 +169,11 @@ audit attribution isolated without shared credentials or an anonymous authorization bypass: ```sh -FANOUT_AUTH_MODE=oidc -FANOUT_OIDC_EMAIL_VERIFICATION=required -FANOUT_OIDC_AUTO_PROVISION=true -FANOUT_OIDC_ALLOWED_DOMAINS="*" -FANOUT_OIDC_DEFAULT_ROLE=viewer +export FANOUT_AUTH_MODE=oidc +export FANOUT_OIDC_EMAIL_VERIFICATION=required +export FANOUT_OIDC_AUTO_PROVISION=true +export FANOUT_OIDC_ALLOWED_DOMAINS="*" +export FANOUT_OIDC_DEFAULT_ROLE=viewer ``` The wildcard is deliberately explicit and is rejected with diff --git a/docs/images/system-overview-dark.png b/docs/images/system-overview-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..13efb960e92f7b941b2b36211fb3283e4122778b GIT binary patch literal 132842 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 a5)%#L@4sJ`Yia{NK~s`bl`WEa<^Mkw&ea_N literal 0 HcmV?d00001 diff --git a/docs/images/system-overview-light.png b/docs/images/system-overview-light.png new file mode 100644 index 0000000000000000000000000000000000000000..8827347709e64f7772c7906e93185ae76f938db2 GIT binary patch literal 135733 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 rdgB5P-r)M$JL!Q9_y+stoiJ}*N-D-h 0.02 && throughput > 10 ``` -The throughput clause matters more than it looks. A service handling two -requests a minute reaches a 50% error rate on one failure, and without a floor -every quiet service pages you. +The throughput clause matters more than it looks. Here `throughput` is the +total span count in the current rollup window, not requests per second. Without +a traffic floor, a single failure on a quiet service can trigger the rule. ## The lifecycle diff --git a/site/src/content/docs/guides/terminate-tls.mdx b/site/src/content/docs/guides/terminate-tls.mdx index 6e150168..1caaaa5b 100644 --- a/site/src/content/docs/guides/terminate-tls.mdx +++ b/site/src/content/docs/guides/terminate-tls.mdx @@ -17,8 +17,8 @@ Set both files. Setting one without the other is a startup error rather than a half-configured listener: ```sh -FANOUT_TLS_CERT_FILE=/etc/fanout/tls/cert.pem -FANOUT_TLS_KEY_FILE=/etc/fanout/tls/key.pem +export FANOUT_TLS_CERT_FILE=/etc/fanout/tls/cert.pem +export FANOUT_TLS_KEY_FILE=/etc/fanout/tls/key.pem ``` That enables TLS 1.3 on the shared listener. Browser traffic and OTLP/HTTP @@ -30,8 +30,8 @@ Terminate at the proxy and forward to Fanout's shared port (`7520` by default). come with it: ```sh -FANOUT_PUBLIC_URL=https://fanout.example.com -FANOUT_TRUSTED_PROXY_CIDRS=10.0.1.0/24 +export FANOUT_PUBLIC_URL=https://fanout.example.com +export FANOUT_TRUSTED_PROXY_CIDRS=10.0.1.0/24 ``` `FANOUT_PUBLIC_URL` is the externally reachable HTTPS origin. Fanout uses it as diff --git a/site/src/content/docs/guides/troubleshoot.mdx b/site/src/content/docs/guides/troubleshoot.mdx index 3dd0405d..d256abd3 100644 --- a/site/src/content/docs/guides/troubleshoot.mdx +++ b/site/src/content/docs/guides/troubleshoot.mdx @@ -11,12 +11,14 @@ status: preview ## The process will not start Fanout validates its whole configuration before opening any listener, so a -startup refusal is a configuration message rather than a crash. Read the error: -it names the setting. - -The one that surprises people is an unrecognised variable. Fanout rejects any -`FANOUT_`-prefixed name it does not know, so a typo — or a setting renamed in a -release — stops the process instead of being ignored. That is deliberate; see +configuration refusal names the setting. Other startup errors can report +storage, listener, or identity-provider failures; read the error before changing +settings. + +The one that surprises people is an unrecognised variable. Fanout rejects +unknown `FANOUT_`-prefixed setting names, except platform-injected service-discovery +names, so a typo stops the process instead of being ignored. That is deliberate; +see [configuration](/reference/configuration). ## An unresolved compaction blocks startup @@ -83,12 +85,15 @@ trace index. First stop Fanout and back up `telemetry/`, then verify the full authoritative set: ```sh +# Use the same environment and data directory as the server. fanout repair verify ``` -The command is read-only and names every unreadable batch. Restore each named -batch from backup when possible. If one cannot be recovered and discarding -only its telemetry is preferable to leaving the instance offline, set it aside +The command is read-only and reports confirmed corrupt batches. Unsupported +formats and operational errors stop verification; they do not authorize +quarantine. Restore each reported corrupt batch from backup when possible. If +one cannot be recovered and discarding only its telemetry is preferable to +leaving the instance offline, set it aside explicitly: ```sh @@ -119,7 +124,7 @@ Work down this list in order: `fo_`-prefixed and goes in `Authorization: Bearer`. Browser sessions and MCP tokens are not ingest credentials. 3. **Is the listener reachable?** Both OTLP transports use `FANOUT_ADDR` - (`:7520` by default). + (`127.0.0.1:7520` by default; the image sets `:7520`). Check container port mappings, bind address and firewall rules. 4. **Right protocol?** Both use port `7520`. gRPC requires HTTP/2 through any proxy. Use `grpc` or `http/protobuf` consistently with the exporter diff --git a/site/src/content/docs/guides/tune-retention.mdx b/site/src/content/docs/guides/tune-retention.mdx index a7878a73..5c6576d9 100644 --- a/site/src/content/docs/guides/tune-retention.mdx +++ b/site/src/content/docs/guides/tune-retention.mdx @@ -14,7 +14,7 @@ jobs and are worth separating before changing any of them. ## How long data is kept ```sh -FANOUT_RETENTION_DAYS=30 +export FANOUT_RETENTION_DAYS=30 ``` Zero means keep everything. Changing it does not delete anything immediately — @@ -28,7 +28,7 @@ automatically uses wider timeline buckets for windows longer than 24 hours. ## The maintenance cycle ```sh -FANOUT_MAINTENANCE_INTERVAL=1h +export FANOUT_MAINTENANCE_INTERVAL=1h ``` This is the expensive pass: retention deletes plus full compaction. Lower it to @@ -40,7 +40,7 @@ The target number of telemetry rows that concurrent small requests may share in one atomic Parquet batch: ```sh -FANOUT_INGEST_BATCH_SIZE=50000 +export FANOUT_INGEST_BATCH_SIZE=50000 ``` A larger target can improve sustained write throughput and create fewer files diff --git a/site/src/content/docs/index.mdx b/site/src/content/docs/index.mdx index 920dd3c6..7049b5d8 100644 --- a/site/src/content/docs/index.mdx +++ b/site/src/content/docs/index.mdx @@ -136,7 +136,7 @@ None of them is a roadmap item phrased as a virtue. - **Not multi-tenant:** namespaces scope queries, not access. Anyone who can query the instance can query every namespace in it; an instance is one trust domain. - **No horizontal scale:** ingest, query and maintenance share a process and a machine. There is no scaling one without the others, because they are the same thing. - **No universal capacity number:** the benchmark above describes one release, host and workload. Your payload cardinality, query mix and disk decide the capacity of your instance. [Measure your own hardware](/explanation/performance). -- **No migration paths:** Fanout is pre-release. A renamed setting is renamed, not aliased, which is why an unknown variable stops the process rather than being ignored. +- **No migration paths:** Fanout is pre-release. Storage-format changes may require a fresh data directory; preserve backups before upgrading. diff --git a/site/src/content/docs/reference/alert-expressions.mdx b/site/src/content/docs/reference/alert-expressions.mdx index 364a73c1..e9ce03fb 100644 --- a/site/src/content/docs/reference/alert-expressions.mdx +++ b/site/src/content/docs/reference/alert-expressions.mdx @@ -16,9 +16,9 @@ against one service's rollup for the current window. These are the values it can read — the names below match the variables declared and bound by the evaluator. -Rules are type-checked against these declared variables when saved through the -API. Unknown variables, type mistakes, and non-boolean results are rejected -before the rule is saved. +Nonempty expressions supplied when creating or replacing rules through the +API are type-checked against these declared variables. Unknown variables, +type mistakes, and non-boolean results are rejected before the rule is saved. Use CEL's standard operators and functions, such as `&&`, `||`, `!`, and `service.startsWith("checkout")`. Numeric variables are doubles; cross-type @@ -27,16 +27,16 @@ numeric comparisons let you compare them with integer literals, as in | Variable | Type | Means | |---|---|---| -| `error_rate` | number | Errors as a proportion of requests over the evaluation window, from 0 to 1. | -| `error_rate_delta` | number | Change in error rate against the baseline, as a proportion. | -| `health_score` | number | A composite 0-100 score combining errors, latency and traffic. Convenient for a single catch-all rule; too coarse to explain why it moved. | +| `error_rate` | number | Mean of minute-rollup span error proportions over the evaluation window, from 0 to 1; not a request-weighted whole-window error rate. | +| `error_rate_delta` | number | Relative change in error rate against the preceding rollup window, as a percentage; zero when the baseline is missing or zero. | +| `health_score` | number | The detector's instance-wide composite 0-100 health score. Every service receives the same score; it is not a per-service value. | | `log_count` | number | Log records recorded for the service over the window. | -| `p50` | number | Median request latency in milliseconds. | -| `p95` | number | 95th-percentile request latency in milliseconds. The usual latency signal: it moves when a meaningful share of requests slow down, where the median does not. | -| `p95_delta` | number | Change in p95 latency against the baseline, in milliseconds. | +| `p50` | number | Mean of approximate minute-rollup median span latencies in milliseconds. | +| `p95` | number | Mean of approximate minute-rollup 95th-percentile span latencies in milliseconds; not the whole-window p95. Latency prefers served work, falling back to outbound spans when no served work is available. | +| `p95_delta` | number | Relative change in p95 latency against the preceding rollup window, as a percentage; zero when the baseline is missing or zero. | | `service` | string | The service name being evaluated, as a string. Compare it when one rule needs to behave differently for one service. | -| `throughput` | number | Requests per second. Worth pairing with any rate threshold — a service handling two requests a minute reaches a 50% error rate on one failure. | -| `throughput_delta` | number | Change in throughput against the baseline, in requests per second. Negative when traffic drops, which is how a rule catches a service that has stopped receiving requests rather than started failing them. | +| `throughput` | number | Total span count over the current rollup window, not requests per second. Pair it with an error threshold to avoid firing on very little traffic. | +| `throughput_delta` | number | Relative change in span count against the preceding rollup window, as a percentage. Negative when traffic drops; zero when the baseline is missing or zero. | | `z_score` | number | How far the service's current behaviour sits from its own recent baseline, in standard deviations. Use it to catch a service that has changed without committing to an absolute threshold that fits every service. | See [Set up alerts](/guides/set-up-alerts) for the rule model these sit in, diff --git a/site/src/content/docs/reference/configuration.mdx b/site/src/content/docs/reference/configuration.mdx index 9804d1f1..afe5e887 100644 --- a/site/src/content/docs/reference/configuration.mdx +++ b/site/src/content/docs/reference/configuration.mdx @@ -45,6 +45,7 @@ provider's endpoint is validated and used. Inherited credentials never select a provider. `FANOUT_AI_MODEL` selects the model; unrelated vendor/tool settings such as `ANTHROPIC_MODEL` and `OPENAI_MODEL` are ignored. See [AI settings](/reference/settings/ai) for base URL meanings. +Both provider base URLs accept a trailing slash. ## Unknown names @@ -70,6 +71,7 @@ Setting both forms nonempty fails startup. File contents lose exactly one trailing LF or CRLF; an empty result fails. Errors name variables and paths, never contents. The deployment controls file access; Fanout performs no file-mode check. Secrets are redacted from startup logs. +Unselected AI providers' value and file forms are ignored. Use deployment environment injection, Docker/Compose secrets, Kubernetes Secrets, or a private selected SOPS profile. This public repository ships no @@ -79,7 +81,29 @@ for examples. ## Validation -The whole configuration is validated before any listener opens. A value the +The whole configuration is validated before data files or listeners open. A value the binary cannot accept stops startup. [First boot](/start/first-boot) lists what is checked. The healthcheck command derives its probe from the listener and TLS environment settings without validating unrelated settings or secrets. + +## DuckDB sizing + +Most deployments should not set DuckDB variables. Give the process or +container the CPU and memory limits it may use; at startup Fanout reserves +headroom for Go and sizes the DuckDB connection pool from available CPUs. The +resolved values and whether Fanout chose them are available in the +`runtime_sizing` block returned by `/readyz`. + +These variables are escape hatches for measured, unusual workloads: + +| Variable | Automatic behavior | When to override | +|---|---|---| +| `FANOUT_DUCKDB_MEMORY` | 60% of the container or host memory available to Fanout | A measured co-tenant workload needs a different Go/DuckDB split | +| `FANOUT_DUCKDB_MAX_CONNECTIONS` | Available Go CPUs, bounded to 2–16 connections | Query concurrency has been benchmarked for this machine | +| `FANOUT_DUCKDB_THREADS` | DuckDB chooses its own query worker count | Query-heavy work must leave specific cores free for ingest | + +An explicit value always wins. Startup logs and `/readyz` report the detected +host and cgroup limits, the selected source, and whether detection was +incomplete. If Fanout cannot conclusively inspect a container limit, it warns; +set `FANOUT_DUCKDB_MEMORY` for a guaranteed bound. See +[storage settings](/reference/settings/storage) for types and defaults. diff --git a/site/src/content/docs/reference/endpoints.mdx b/site/src/content/docs/reference/endpoints.mdx index 82500214..f953be9f 100644 --- a/site/src/content/docs/reference/endpoints.mdx +++ b/site/src/content/docs/reference/endpoints.mdx @@ -9,7 +9,7 @@ status: preview --- Everything below is served by the same HTTP listener as the browser client, on -`FANOUT_ADDR` (`:7520` by default). +`FANOUT_ADDR` (`127.0.0.1:7520` by default; the image sets `:7520`). This page covers the operational endpoints and what they are for. For the complete surface — every route with the exact credential it requires, taken from diff --git a/site/src/content/docs/reference/http-routes.mdx b/site/src/content/docs/reference/http-routes.mdx index c3d21f6e..1a9f1162 100644 --- a/site/src/content/docs/reference/http-routes.mdx +++ b/site/src/content/docs/reference/http-routes.mdx @@ -11,7 +11,8 @@ generated: true {/* Generated by cmd/fanout-docgen from internal/api, internal/agent and cmd/fanout. Edit the generator, not this page. */} -Every route below is served on `FANOUT_ADDR` (`:7520` by default). +Every route below is served on `FANOUT_ADDR` (`127.0.0.1:7520` by default; +the image sets `:7520`). OTLP shares this listener but uses its own handlers and ingest credential; see [send your first telemetry](/start/send-telemetry). @@ -29,8 +30,10 @@ concluding a route is reachable — or that it is not: **not** the default. Enabling it also turns on mutex and block sampling. - `/mcp`, `/api/mcp`, `/oauth/*` and `/.well-known/*` — only when `FANOUT_MCP_ENABLED` is true, which **is** the default. -- `/api/agent/*` — only when an AI provider key is - configured. Without one the investigator is not registered at all. +- `/api/agent/*` — only when `FANOUT_AI_PROVIDER` selects `anthropic` or + `openai`, with that provider's required key. An empty provider disables chat. +- `/api/auth/oidc/start` and `/api/auth/oidc/callback` — only in + `FANOUT_AUTH_MODE=oidc`. Everything else is always registered. A path shown with `:name` or `*` is the pattern Echo matches on, not a literal URL. @@ -46,14 +49,14 @@ The supported programmatic interface is **MCP**, at `/mcp` — see [MCP tools](/reference/mcp-tools). The stable non-MCP surfaces are OTLP ingest, and the operational endpoints in [endpoints](/reference/endpoints). -Two exceptions worth knowing, because HTTP is currently the only way to reach -them: alert rules (`/api/alerting/rules`, `/api/alerts`) and ingest-token rotation -(`/api/settings/ingest`). Neither has a browser page yet. +Alert rules (`/api/alerting/rules`, `/api/alerts`) currently have no browser +page. Ingest-token rotation uses `POST /api/settings/ingest/token/rotate` +and is also available to administrators on **Connect telemetry**. ::: ## Errors -Application API errors, including unknown routes and wrong methods, return exactly +Application API errors, including unknown routes and wrong methods, return objects shaped like `{"code":"bad_request","message":"Safe explanation"}`. Codes are stable snake_case identifiers; clients branch on `code` rather than message text. Invalid dashboard or panel specs also include `problems` with field paths, @@ -174,7 +177,7 @@ Capabilities map to roles in [roles](/reference/roles). - **or a service credential** — additionally reachable without a browser session, which is how a scraper reaches the metrics endpoint. -A method of `Any` means the route answers every verb, and the middleware +A method of `Any` means the route is registered for every verb, and the middleware gives the same answer for all of them — where it would not, this page fails -to build rather than pick one. `GET /*` is the single-page application: -anything not matched above is served the client, which is why it is public. +to build rather than pick one. `GET /*` serves the single-page application +for browser paths. Unknown `/api/*` and OTLP paths return errors instead. diff --git a/site/src/content/docs/reference/settings/ingest.mdx b/site/src/content/docs/reference/settings/ingest.mdx index 02271e66..53b8042b 100644 --- a/site/src/content/docs/reference/settings/ingest.mdx +++ b/site/src/content/docs/reference/settings/ingest.mdx @@ -31,8 +31,8 @@ Supplies the namespace for telemetry without one. ### `FANOUT_INGEST_BATCH_SIZE` -Limits telemetry rows per batch; valid values are 1–50000. +Sets the group-commit row target; valid values are 1–50000. Individual requests remain atomic and can exceed this target. ### `FANOUT_INGEST_MAX_IN_FLIGHT_BYTES` -Caps the decoded telemetry the process will hold across concurrent requests. Concurrency is HTTP/2 streams times connections and each handler holds its batch until the commit is durable, so without a ceiling a burst is bounded only by memory. Zero is unbounded, which is the behaviour that predates this setting. +Caps the decoded telemetry the process will hold across concurrent requests. Concurrency is HTTP/2 streams times connections and each handler holds its batch until the commit is durable, so without a ceiling a burst is bounded only by memory. Zero is unbounded. A single request is admitted when no other request holds budget, even if it exceeds the limit. diff --git a/site/src/content/docs/reference/settings/storage.mdx b/site/src/content/docs/reference/settings/storage.mdx index b852f70d..a7937158 100644 --- a/site/src/content/docs/reference/settings/storage.mdx +++ b/site/src/content/docs/reference/settings/storage.mdx @@ -22,7 +22,7 @@ Vendor credentials and endpoints keep the vendor's documented names. | `FANOUT_DATA_DIR` | string | `./data` | | `FANOUT_DUCKDB_MAX_CONNECTIONS` | integer | `0` | | `FANOUT_DUCKDB_MEMORY` | string | — | -| `FANOUT_DUCKDB_THREADS` | integer | — | +| `FANOUT_DUCKDB_THREADS` | integer | `0` | | `FANOUT_MAINTENANCE_INTERVAL` | duration | `1h` | | `FANOUT_RETENTION_DAYS` | integer | `30` | | `FANOUT_ROLLUP_INTERVAL` | duration | `1m` | diff --git a/site/src/content/docs/start/first-boot.mdx b/site/src/content/docs/start/first-boot.mdx index 1d7de056..8c16a2f7 100644 --- a/site/src/content/docs/start/first-boot.mdx +++ b/site/src/content/docs/start/first-boot.mdx @@ -15,8 +15,7 @@ acceptable. ## What it checks -Every duration and size has a floor, and the auth settings are checked as a -group rather than individually: +Timing, batch sizing and auth settings are checked together: - Addresses and the data directory must not be empty. - `FANOUT_ROLLUP_INTERVAL` must be at least `1s`; @@ -31,7 +30,8 @@ group rather than individually: - In `oidc` mode the issuer URL and `FANOUT_PUBLIC_URL` must both be HTTPS, and a client ID and secret are required. -An unrecognised `FANOUT_`-prefixed variable is an error too. A typo in a setting +An unknown `FANOUT_` setting name is an error too, except platform-injected +service-discovery names. A typo in a setting name is otherwise indistinguishable from a setting you never made, and the failure surfaces months later as a default nobody chose. @@ -73,7 +73,9 @@ fresh data directory if you cannot account for who has seen it. ## Signing in afterwards Local mode has no passwords. Once SMTP is configured, active users receive -short-lived codes by email. OIDC deployments use the provider's flow instead. +short-lived codes by email. Without SMTP, run `fanout login-link ` with +the server's environment and data directory to mint a 15-minute, single-use +link for an existing active user. OIDC deployments use the provider's flow instead. ## Next diff --git a/site/src/content/docs/start/install.mdx b/site/src/content/docs/start/install.mdx index 264f4751..a1f96561 100644 --- a/site/src/content/docs/start/install.mdx +++ b/site/src/content/docs/start/install.mdx @@ -37,6 +37,8 @@ or `FANOUT_AI_PROVIDER=openai` with `OPENAI_API_KEY`, to enable the chat investigator. Chat is optional and disabled when no provider is selected, even with inherited vendor credentials or endpoints. Selecting a provider requires its key at startup and validates only its endpoint. +Without a selected provider, ingest, dashboards, traces, logs, metrics, and MCP +continue to work; only investigation chat and AI-assisted controls are hidden. :::caution[Use a named volume, or fix the ownership yourself] The image is distroless and runs unprivileged as UID/GID 65532. A **named @@ -106,10 +108,11 @@ runner, because DuckDB needs cgo. |---|---| | `labstack/fanout:latest` | the newest release | | `labstack/fanout:2026.8.0` | that exact release | -| `labstack/fanout:main` | the tip of `main` | -| `labstack/fanout:sha-` | one specific commit | +| `ghcr.io/labstack/fanout:main` | the tip of `main` | +| `ghcr.io/labstack/fanout:sha-` | one specific commit | -Every tag above also exists under `ghcr.io/labstack/fanout`. +Release and `latest` tags also exist under `ghcr.io/labstack/fanout`. +Development tags are GHCR-only. Standalone signatures and SBOMs are deliberately not published yet — the reasoning is in the repository's release contract. diff --git a/site/src/content/docs/start/send-telemetry.mdx b/site/src/content/docs/start/send-telemetry.mdx index 47f2724a..5c633f40 100644 --- a/site/src/content/docs/start/send-telemetry.mdx +++ b/site/src/content/docs/start/send-telemetry.mdx @@ -53,6 +53,14 @@ variables such as `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` must include their path ## Configure a Collector ```yaml +receivers: + otlp: + protocols: + grpc: + endpoint: 0.0.0.0:4317 + http: + endpoint: 0.0.0.0:4318 + exporters: otlp/fanout: endpoint: "https://fanout.example.com:443" @@ -62,10 +70,13 @@ exporters: service: pipelines: traces: + receivers: [otlp] exporters: [otlp/fanout] logs: + receivers: [otlp] exporters: [otlp/fanout] metrics: + receivers: [otlp] exporters: [otlp/fanout] ``` @@ -202,9 +213,10 @@ namespace in it. An instance is the trust domain. ## One listener -`FANOUT_ADDR` (`:7520`) controls the shared listener in both the native -binary and container. Use `127.0.0.1:7520` to restrict it to local clients, or -publish `7520:7520` in Docker. There are no separate ingest address settings. +`FANOUT_ADDR` controls the shared listener. The native default is +`127.0.0.1:7520`; the image sets `:7520`. Set `FANOUT_ADDR=:7520` for remote +clients, or publish `7520:7520` in Docker. There are no separate ingest address +settings. When using a reverse proxy, enable HTTP/2 to the backend for gRPC. Plaintext Fanout accepts prior-knowledge HTTP/2 (h2c); a TLS listener negotiates HTTP/2 diff --git a/site/src/content/docs/status/capabilities.mdx b/site/src/content/docs/status/capabilities.mdx index 13d35718..a9fa214c 100644 --- a/site/src/content/docs/status/capabilities.mdx +++ b/site/src/content/docs/status/capabilities.mdx @@ -44,7 +44,7 @@ directory. | OTLP ingest over gRPC and HTTP | shipped | Both transports, one port and one ingest token. | | Parquet storage, trace indexes, and DuckDB analytics | shipped | Authoritative local Parquet; rebuildable DuckDB query state. | | Browser client | preview | Ships in the binary; surfaces still moving. | -| Chat investigator | preview | Requires an AI provider key; disabled and logged without one. | +| Chat investigator | preview | Disabled unless `FANOUT_AI_PROVIDER` selects `anthropic` or `openai`; the selected provider's key is required at startup. | | Agent-built dashboards | preview | [Build and refine from chat](/guides/build-dashboards): fifteen panel types, variables, comparison, saved grids and immutable versions with restore. View links retain filters and time; dashboard access remains owner-scoped. | | MCP tools | preview | Served at `/mcp`; the tool set is not frozen. | | Alerts | preview | Rules evaluate on an interval against rollups. | @@ -62,9 +62,8 @@ directory. ## What "no migration path" means in practice It means what it says. A storage-format change may require starting from an -empty data directory, and a renamed setting is renamed rather than aliased. The -configuration loader rejects unrecognised `FANOUT_`-prefixed variables, so a -setting that has moved surfaces as a refusal to start rather than as a silently -ignored value — which is the one guarantee that makes the rest survivable. +empty data directory. The configuration loader rejects unknown `FANOUT_` +setting names, except platform-injected service-discovery names, so a typo +surfaces as a refusal to start rather than as a silently ignored value. Do not run a Fanout instance as the only copy of data you need to keep. diff --git a/site/src/pages/llms.txt.ts b/site/src/pages/llms.txt.ts index 3e0a5d8f..ea21257b 100644 --- a/site/src/pages/llms.txt.ts +++ b/site/src/pages/llms.txt.ts @@ -65,10 +65,10 @@ export const GET: APIRoute = async ({ site }) => { "", "- Fanout reads built-in defaults and process environment. Native installs listen on 127.0.0.1:7520; the image supplies FANOUT_ADDR=:7520. Secret variables accept _FILE paths. Commands: `fanout [flags]`, `fanout version`, `fanout login-link ` (local recovery with host access), `fanout healthcheck [url]`, `fanout repair verify`, and `fanout repair quarantine --batch `. Product operations use HTTP or MCP.", "- MCP is the intended agent interface. The server exposes its tools at `/mcp`.", - "- MCP and the HTTP API authenticate with an API key, which is not the same credential as the ingest token. Both are `fo_`-prefixed; the routes tell them apart by prefix.", + "- External MCP clients authenticate with resource-bound OAuth tokens. The browser API uses browser sessions; `/api/mcp` uses the same session. These credentials do not authorize OTLP ingest.", "- Telemetry goes in over OTLP only: gRPC and HTTP on the same port as the application (7520 by default). There is no bespoke ingest API to script against.", "- Ingest always requires the ingest token, and rejects everything until the first administrator exists — a collector started before setup will fail until setup completes.", - "- Configuration is environment-first, and every variable is `FANOUT_`-prefixed. An unrecognised `FANOUT_` variable is a startup error rather than a silently ignored one.", + "- Configuration is environment-only: built-in defaults followed by nonempty process environment values. Custom settings use FANOUT_; AI credentials and endpoints use ANTHROPIC_API_KEY, ANTHROPIC_BASE_URL, OPENAI_API_KEY and OPENAI_BASE_URL. Unknown FANOUT_ setting names fail startup, except platform-injected service-discovery names. Chat is off unless FANOUT_AI_PROVIDER selects anthropic or openai and its required key is supplied; OPENAI_BASE_URL includes /v1.", "", ]; From 2b915ffcce6a8a2a7b1de871ad27de3ba5c0426b Mon Sep 17 00:00:00 2001 From: Vishal Rana Date: Wed, 14 Oct 2026 08:46:21 -0700 Subject: [PATCH 2/2] docs: scope alert and control-database claims to actual behavior Alerts evaluate service span and log rollups, not OTLP metric values. Ingest authentication reads the token hash from the control database on every export, so SQLite holds no telemetry but is not independent of ingest. --- README.md | 3 ++- site/src/content/docs/explanation/storage-model.mdx | 7 ++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 4296c7a0..57cb6885 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,8 @@ client, chat investigator, MCP tools, dashboards, and alerts are preview capabil - OTLP ingest over gRPC and HTTP, with local Parquet storage and DuckDB analytics. - An investigation agent that answers questions about your telemetry in plain language. - An MCP server for external agents using the same typed query tools. -- Dashboards and alerts across traces, logs, and metrics. +- Dashboards across traces, logs, and metrics, and alerts on service error rate, latency, + throughput, and log volume. ## Quick start diff --git a/site/src/content/docs/explanation/storage-model.mdx b/site/src/content/docs/explanation/storage-model.mdx index ea6b2646..bf6a8a83 100644 --- a/site/src/content/docs/explanation/storage-model.mdx +++ b/site/src/content/docs/explanation/storage-model.mdx @@ -56,9 +56,10 @@ Trace lookup binary-searches a fixed-width sidecar on disk, seeks directly to th matching Parquet row ranges, and verifies the complete trace ID after hashing. The sidecar is an index, not another telemetry representation. -Dashboard rollups are rebuildable DuckDB caches. SQLite remains independent and -stores only transactional product state. -It never sits on the telemetry write path. +Dashboard rollups are rebuildable DuckDB caches. SQLite stores only +transactional product state and never holds telemetry rows. Ingest +authentication still reads the ingest token hash from it on every export, so an +unreadable control database rejects OTLP requests. ## Attributes retain their types