Skip to content

ErickJ3/faze

Faze

Local-first observability for developers.

"Faze" is pronounced like "phase" (/feɪz/)

Faze is a lightweight OTLP collector with an embedded web interface. It provides a simple way to collect, store, and visualize telemetry data without requiring Docker or complex infrastructure setup.

A look

Faze Web Interface

  • Single binary with no external dependencies
  • OTLP collector supporting both gRPC and HTTP protocols (partial)
  • Embedded web UI for data visualization
  • Project-based database management
  • SQLite storage for traces, logs, and metrics

Installation

Using Install Script

Linux/macOS:

curl -fsSL https://raw.githubusercontent.com/ErickJ3/faze/main/install.sh | sh

Or download and run manually:

wget https://raw.githubusercontent.com/ErickJ3/faze/main/install.sh
chmod +x install.sh
./install.sh

Windows (PowerShell):

irm https://raw.githubusercontent.com/ErickJ3/faze/main/install.ps1 | iex

Or download and run manually:

Invoke-WebRequest -Uri https://raw.githubusercontent.com/ErickJ3/faze/main/install.ps1 -OutFile install.ps1
.\install.ps1

From Source

git clone https://github.com/ErickJ3/faze
cd faze
cargo build --release

The binary will be available at target/release/faze.

Development Setup

If you're planning to contribute or hack on Faze, we recommend using Nix and Just to make your life easier.

With Nix:

We have a flake that sets up everything you need (Rust, protobuf, dependencies, the works):

nix develop

That's it. You're ready to go.

Using Just:

We use Just as a command runner. Think of it as make but less painful. Once you're in the dev environment:

# See all available commands
just

# Run the server with hot reload
just dev-server

# Run the UI dev server
just dev-ui

# Run both server and UI together
just dev

# Build the UI and create a release binary
just build

# Run tests (Rust + UI)
just test

# Run UI tests with interactive interface
just test-ui

# Run UI tests with coverage report
just test-ui-coverage

# Run linters (Rust + UI)
just check

Just makes common tasks way more convenient than typing out full cargo commands every time.

Usage

Start the Collector

faze serve

Faze Server Running

This command:

  • Starts the OTLP collector (gRPC on port 4317, HTTP on port 4318)
  • Serves the web UI on http://localhost:7070
  • Automatically detects your project and stores data in ~/.local/share/faze/<project>.db

Trace Details

Trace Timeline

The web UI provides detailed trace visualization with span timelines, showing middleware execution and request handling flow.

Query Traces

faze traces

Query Logs

faze logs

DB Management

# Show database information
faze info

# Clean current project database
faze clean

# Clean all databases
faze clean --all

OTLP

Configure your OTLP exporter to send telemetry to:

good to know: we haven't fully implemented the protocol yet, and some things are still pending in HTTP.

  • gRPC: localhost:4317
  • HTTP: localhost:4318

Storage

Faze stores telemetry data in SQLite databases located at:

  • Linux/macOS: ~/.local/share/faze/<project>.db
  • Windows: %LOCALAPPDATA%/faze/<project>.db

Each project gets its own database, automatically detected from the current working directory.

Requirements

  • Rust 1.91+ (for building from source)
  • Protobuf compiler (for building from source)

License

MIT/Apache-2

About

Local-first observability for developers.

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Contributing

Stars

Watchers

Forks

Packages

No packages published