Uptrace Open Source

Uptrace Open Sourceopen in new window version is a distributed tracing system that uses OpenTelemetry to collect data and ClickHouse database to store it. It is a free version of Uptrace Cloudopen in new window.

You can track new releases on GitHubopen in new window and configure notificationsopen in new window when a new version is released.

Installation

Docker

To run Uptrace with a single command, see Docker exampleopen in new window.

Linux

Download Linux binary:

wget -O ./uptrace https://github.com/uptrace/uptrace/releases/download/v0.1.0/uptrace_linux_amd64
chmod +x ./uptrace

Download Uptrace config:

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

Create ClickHouse database:

clickhouse-client -q "CREATE DATABASE uptrace"

Reset ClickHouse database schema:

./uptrace --config=uptrace.yml ch reset

Start Uptrace:

./uptrace --config=uptrace.yml serve

You may need to update ClickHouse credentials (ch.dsn) in uptrace.yml.

MacOS

Download MacOS binary:

wget -O uptrace https://github.com/uptrace/uptrace/releases/download/v0.1.0/uptrace_darwin_amd64
chmod +x uptrace

Download Uptrace config:

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

Create ClickHouse database:

clickhouse-client -q "CREATE DATABASE uptrace"

Reset ClickHouse database schema:

./uptrace --config=uptrace.yml ch reset

Start Uptrace:

./uptrace --config=uptrace.yml serve

You may need to update ClickHouse credentials (ch.dsn) in uptrace.yml.

Other

Check GitHub Releasesopen in new window for pre-compiled binaries for other platforms.

OTLP

OpenTelemetry protocol (OTLP) is the communication protocol used to send and receive telemetry data, for example, spansopen in new window or errors. As a transport, OTLP can use gRPC (OTLP/gRPC) or HTTP (OTLP/HTTP).

Uptrace supports OTLP/gRPC on the port 14317 and OTLP/HTTP on the port 14318.

ClientProtocolDSN
uptrace-goOTLP/gRPChttp://localhost:14317
uptrace-dotnetOTLP/gRPChttp://localhost:14317
uptrace-nodeOTLP/HTTPhttp://localhost:14318
uptrace-pythonOTLP/HTTPhttp://localhost:14318
uptrace-rubyOTLP/HTTPhttp://localhost:14318

For example, to run basic Go exampleopen in new window, you need to use OTLP/gRPC and port 14317:

UPTRACE_DSN=http://localhost:14317 go run .

But to run basic Node.js exampleopen in new window, you need to use OTLP/HTTP and port 14318:

UPTRACE_DSN=http://localhost:14318 node main.js

Collector

If you are already using OpenTelemetry Collector, you can configure it to send data to Uptrace:

exporters:
  otlp:
    endpoint: http://localhost:14317
    tls:
      insecure: true
exporters:
  otlphttp:
    endpoint: http://localhost:14318
    tls:
      insecure: true