Skip to content

Tram

A lightweight, extensible pipeline framework for logs, metrics and traces.

Get Started Components Source Code

Tram is a cloud-native, in-memory data pipeline framework for building real-time data processing flows. It receives OpenTelemetry data, filters, validates and batches it, and routes it through tree-structured pipelines to any number of destinations.

flowchart LR
    otlp([OTLP source]) --> filter[cel_filter] --> batch[batch] --> backend([OTLP sink])
    otlp --> validator[cel_validator] --> nats([NATS sink])
    otlp --> debug([debug sink])

Features

  • Tree-Based Pipelines


    Define data flows with a single source, optional stages and any number of sinks as leaves.

  • Cloud-Native


    Configure streams through the HTTP/gRPC API, JSON files or Kubernetes custom resources. Everything runs in memory.

  • Extensible


    Easily add custom sources, stages and sinks.

  • Real-Time


    An event-driven architecture for low-latency data flows.

  • OTLP-Native


    Logs, metrics and traces flow through the pipelines as OpenTelemetry Protocol data.

  • Observable


    Records, durations and request sizes of every node are served as Prometheus metrics.

Quick Start

git clone https://codeberg.org/eljoth/tram.git
cd tram
go build -o tram ./cmd/tram
./tram server

The HTTP API then listens on localhost:8080. Create a first stream that logs a generated event every 5 seconds:

curl -X PUT http://localhost:8080/v1/streams/my-pipeline \
  -H "Content-Type: application/json" \
  -d '{
    "stream": {
      "source": { "name": "event-generator", "type": "generator", "spec": { "interval": "5s" } },
      "sinks": [ { "name": "console", "type": "debug", "from": "event-generator" } ]
    }
  }'

Learn More

  • Getting Started

    Install Tram, run it and create your first streams

  • Pipelines

    How sources, stages and sinks form a stream

  • Components

    Every source, stage and sink with its configuration

  • Kubernetes Operator

    Run streams described by Stream custom resources

  • Benchmarks

    What pipelines cost, and how to size deployments

  • Contributing

    Development setup, adding components and guidelines