Transaction Log Agent

Track RPM transactions on your datacenter
This repository contains the code for the Agent, which compiles transactional
data and sends it to a central server, enabling real-time monitoring and
analytics. By aggregating and processing package history, the Agent provides
actionable insights for system administrators to optimize their RPM-based
systems.
[!WARNING]
This repository is under active development and may introduce breaking changes at any time. Please note:
- The codebase is evolving rapidly
- Breaking changes may occur between commits
- API stability is not guaranteed
- Regular updates are recommended to stay current
- Check the changelog before updating
Installation
sudo dnf localinstall -y https://rpm.rda.run/rpm-rda-run-1.0-1.noarch.rpm
sudo dnf install -y txlog
Usage
To compile and send all transaction info:
txlog build
🪴 Project Activity

Development
To make changes on this project, you need:
Golang
wget https://go.dev/dl/go1.24.0.linux-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.24.0.linux-amd64.tar.gz
echo "export PATH=$PATH:/usr/local/go/bin" >> ~/.bashrc
source ~/.bashrc
nFPM
echo '[goreleaser]
name=GoReleaser
baseurl=https://repo.goreleaser.com/yum/
enabled=1
gpgcheck=0' | sudo tee /etc/yum.repos.d/goreleaser.repo
sudo dnf install -y nfpm
Pandoc
wget https://github.com/jgm/pandoc/releases/download/3.6.4/pandoc-3.6.4-linux-amd64.tar.gz
tar zxvf pandoc-3.6.4-linux-amd64.tar.gz
sudo mv pandoc-3.6.4/bin/pandoc /usr/bin/pandoc
rm -rf pandoc-3.6.4*
Development commands
The Makefile contains all the necessary commands for development. You can run
make to view all options.
To create the binary and distribute
make clean: remove compiled binaries and packages
make build: build a production-ready binary on ./bin directory
make man: compile the man txlog manpage
make rpm: create new .rpm package
Contributing
- Fork it (https://github.com/txlog/agent/fork)
- Create your feature branch (
git checkout -b my-new-feature)
- Commit your changes (
git commit -am 'Add some feature')
- Push to the branch (
git push origin my-new-feature)
- Create a new Pull Request