SkillAgentSearch skills...

Pulsar

High-performance Go event generator for load testing. Supports TCP/UDP, Netflow v5, Syslog (CEF).

Install / Use

/learn @NGRsoftlab/Pulsar
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

🌌 Pulsar

High-performance synthetic event generator Generate realistic logs and network flows at scale up to 150000 events per second

⚠️ Pre-alpha software — not ready for production use. Breaking changes are expected.

Features

  • Protocols: TCP, UDP
  • Formats: NetFlow v5, Syslog (CEF)
  • Lock-free pipeline engine: Zero-lock worker pools with atomic queues for sustained 150K+ EPS
  • CLI-first: Optionla config files - everything tunable via flags or env vars. Perfect for scripts and CI
  • Built-in observability: Prometheus metrics for events, workers, queue depth and Go runtime. Exposed on :9090/metrics

Known problems

  • TCP connection pool is basic (no smart retries; errors on shutdown)
  • Event types and data are hardcoded - no support for custom format
  • Potential data loss on shutdown under high load (visible with -race flag)
  • Suboptimal memory usage at high EPS (OOM risk on constrained systems)

Usage

Run from source (for development)

go run ./cmd --help

Build and run binary

go build -o pulsar .
./pulsar -e netflow -p udp -r 100000 -d localhost:2055 -t 10m

Flags

| Flag | Type | Description | Default | |------|------|-------------|---------| | -c, --config | FILE | Configuration file path | - | | -r, --rate | N | Events per second | 10 | | -d, --destinations | LIST | Comma-separated destinations (now can work only with single) | 127.0.0.1:514 | | -p, --protocol | PROTO | Protocol: tcp or udp | udp | | -e, --events | TYPE | Events type: netflow or syslog | netflow | | -t, --duration | TIME | How long to run (e.g., 30s, 5m, 1h) | 0 (endless) | | -l, --log-level | LEVEL | Log level: debug, info, warn, error | info | | -v, --version | - | Show version information | - | | -h, --help | - | Show this help | - |

Docker

You can run multiple generators via docker-compose.yml (netflow + syslog, as example)

Build and run both generators for 5 minutes:

docker-compose up --build

Send events to your destination instead of localhost:

TARGET_DESTINATION=siem.internal:2055 docker-compose up --build

Run only one generator (for example netflow):

docker-compose up --build pulsar-netflow

Issues

Found a bug or have an idea? Open an issue!
Please include:

  • Command you ran
  • Expected vs actual behavior

Pre-alpha means bugs are expected — your report helps a lot!

Maintainer

This project was created and is maintained by Nikita Shabanov.

Related Skills

View on GitHub
GitHub Stars7
CategoryDevelopment
Updated1mo ago
Forks0

Languages

Go

Security Score

90/100

Audited on Feb 19, 2026

No findings