Install Uptrace

To install Uptrace on your computer, you need to:

  1. Install Redis.
  2. Create a ClickHouse database to store telemetry data.
  3. Create a PostgreSQL database to store users and projects.
  4. Install the Uptrace binary.
  5. Start sending data using the OpenTelemetry protocol.
  6. Enjoy! 🎉

Instead of installing everything manually, you can also try the following deployment methods:

  • Docker can get you started with a single command.
  • Ansible playbook is ideal for installing Uptrace on bare metal servers.
  • K8s Helm chart works best if you already have a Kubernetes cluster.

Hardware Requirements

Spans and LogsTime SeriesHardware Requirements
30 terabytes2 million24 vCPU 48GB RAM 1TB SSD 6TB HDD
50 terabytes3 million32 vCPU 96GB RAM 2TB SSD 12TB HDD
100 terabytes6 million64 vCPU 160GB RAM 4TB SSD 20TB HDD
500 terabytes30 million192 vCPU 576GB RAM 8TB SSD 100TB HDD

Configuration

All Uptrace configuration is done with a single YAML file that can be downloaded from GitHub:

shell
wget https://raw.githubusercontent.com/uptrace/uptrace/master/config/uptrace.dist.yml
mv uptrace.dist.yml uptrace.yml

You can then specify the config file location when starting Uptrace:

shell
uptrace --config=/path/to/config.yml serve

See Configuration for more details.

ClickHouse

Uptrace requires a ClickHouse database to store telemetry data such as traces, logs, and metrics. ClickHouse is an open-source columnar database management system designed to handle large amounts of data and execute complex analytical queries with low latency.

After installing ClickHouse, you can create the uptrace database like this:

shell
clickhouse-client -q "CREATE DATABASE uptrace"

On startup, Uptrace connects to the ClickHouse database specified in the uptrace.yml configuration file and automatically creates the required tables and views.

yaml
# uptrace.yml

ch:
  addr: localhost:9000
  user: default
  password:
  database: uptrace

PostgreSQL

Uptrace also requires a PostgreSQL database to store metadata such as metric names and alerts. Typically, the PostgreSQL database requires only a few megabytes of disk space.

After installing PostgreSQL, you can create the database like this:

shell
sudo -u postgres psql
postgres=# create database uptrace;
postgres=# create user uptrace with encrypted password 'uptrace';
postgres=# grant all privileges on database uptrace to uptrace;
postgres=# \c uptrace
postgres=# grant all on schema public to uptrace;

On startup, Uptrace connects to the PostgreSQL database specified in the uptrace.yml configuration file and automatically creates the required tables and views.

yaml
# uptrace.yml

pg:
  addr: localhost:5432
  user: uptrace
  password: uptrace
  database: uptrace

Installation

Packages

Uptrace provides DEB and RPM packages for Linux amd64/arm64 systems. After installing the appropriate package, you will have:

  • Uptrace binary at /usr/bin/uptrace.
  • Uptrace config at /etc/uptrace/config.yml.
  • Systemd service at /lib/systemd/system/uptrace.service.
  • Environment file used by the systemd service at /etc/uptrace/uptrace.conf.

To check the status of the Uptrace service:

shell
sudo systemctl status uptrace

To restart Uptrace:

shell
sudo systemctl restart uptrace

To view Uptrace logs:

shell
sudo journalctl -u uptrace -f

DEB

To install the Debian package, run the following command, replacing 2.0.0-beta.1 with the desired version and amd64 with the desired architecture:

shell
wget https://github.com/uptrace/uptrace/releases/download/v2.0.0-beta.5/uptrace_2.0.0-beta.1_amd64.deb
sudo dpkg -i uptrace_2.0.0-beta.1_amd64.deb

RPM

To install the RPM package, run the following command, replacing 2.0.0-beta.1 with the desired version and x86_64 with the desired architecture:

shell
wget https://github.com/uptrace/uptrace/releases/download/v2.0.0-beta.5/uptrace-2.0.0-beta.1-1.x86_64.rpm
sudo rpm -ivh uptrace-2.0.0-beta.1-1.x86_64.rpm

Binaries

Alternatively, instead of installing DEB or RPM packages, you can download a pre-compiled binary and install Uptrace manually.

Linux

Download the Linux binary:

shell
wget -O ./uptrace https://github.com/uptrace/uptrace/releases/download/v2.0.0-beta.5/uptrace_linux_amd64
chmod +x ./uptrace

Download the Uptrace config:

shell
wget https://raw.githubusercontent.com/uptrace/uptrace/master/config/uptrace.dist.yml
mv uptrace.dist.yml uptrace.yml

Start Uptrace:

shell
./uptrace --config=uptrace.yml serve

macOS

Download the macOS binary:

shell
wget -O uptrace https://github.com/uptrace/uptrace/releases/download/v2.0.0-beta.5/uptrace_darwin_amd64
chmod +x uptrace

Download the Uptrace config:

shell
wget https://raw.githubusercontent.com/uptrace/uptrace/master/config/uptrace.dist.yml
mv uptrace.dist.yml uptrace.yml

Start Uptrace:

shell
./uptrace --config=uptrace.yml serve

Windows

Download the Windows binary:

shell
curl -O uptrace_windows_amd64.exe https://github.com/uptrace/uptrace/releases/download/v2.0.0-beta.5/uptrace_windows_amd64.exe

Download the Uptrace config:

shell
curl -O uptrace.yml https://raw.githubusercontent.com/uptrace/uptrace/master/config/uptrace.dist.yml

Start Uptrace:

shell
uptrace_windows_amd64.exe --config=uptrace.yml serve

Other

For pre-compiled binaries for other platforms, check GitHub Releases.

Start Sending Data

To start sending data, you can use OpenTelemetry distributions that are pre-configured to work with Uptrace. Uptrace uses the OpenTelemetry protocol (OTLP) to receive telemetry data such as traces, metrics, and logs. As a transport protocol, OTLP can use gRPC (OTLP/gRPC) or HTTP (OTLP/HTTP).

Uptrace supports OTLP/gRPC on port 4317 and OTLP/HTTP on port 443. Both ports are specified in the Uptrace DSN that you will receive after installing Uptrace.

What's Next?

Next, learn how to configure Uptrace for your needs.