8000 GitHub - observIQ/blitz: Load generation utility for load testing Bindplane and OpenTelemetry collectors · GitHub
[go: up one dir, main page]

Skip to content
observIQPublic

About

Load generation utility for load testing Bindplane and OpenTelemetry collectors

Resources

Code of conduct

Contributing

Security policy

Stars

9 stars

Watchers

0 watching

Forks

Blitz

Blitz

The last, best, most magnificent telemetry generation/simulation tool anyone will ever need.

Documentation

  • Roadmap - Where blitz is headed and the direction of current work
  • Configuration Guide - Complete guide to configuring blitz with YAML files, environment variables, and command-line flags
  • Architecture Overview - Detailed explanation of the application architecture, components, and data flow
  • Terminology - The words blitz uses for its internal components: Generator, Output, Producer, Effector, and the rest
  • Metrics Documentation - Comprehensive guide to monitoring and metrics exposed by blitz
  • Shell Completion - Guide to installing and using shell autocompletion for bash, zsh, fish, and PowerShell
  • Development Guide - Guidelines for contributing to the project
  • Contributing Guidelines - How to contribute to the project

Components

Blitz consists of generators that create telemetry data and outputs that send data to destinations.

Generators

  • nop - No operation generator for testing infrastructure without generating data
  • apache-common - Generates Apache Common Log Format (CLF) entries
  • apache-combined - Generates Apache Combined Log Format entries with referer and user-agent
  • apache-error - Generates Apache Error Log Format entries for server diagnostics
  • filegen - Emits lines from your own files or the built-in data library, either picked at random or replayed once in order
  • json - Generates structured JSON logs
  • kubernetes - Generates Kubernetes container log format entries in CRI-O format with various application log types
  • nginx - Generates NGINX Combined Log Format entries matching NGINX's default log format
  • palo-alto - Generates realistic Palo Alto firewall syslog entries
  • postgres - Generates PostgreSQL log format entries including query logs, connections, and database events
  • winevt - Deprecated: generates Windows Event logs in unparsed XML format. Use wel instead
  • wel - Generates Windows Event Log entries across Security, System, Application, Sysmon, PowerShell, and other channels
  • okta - Generates Okta System Log events in JSON format
  • hostmetrics - Generates host metrics that mimic the OpenTelemetry Host Metrics receiver
  • traces - Generates distributed traces with an HTTP server root span and 1 to 4 child spans (database, cache, processing, downstream HTTP, validation)
  • fix - Generates FIX (Financial Information eXchange) protocol messages for trading telemetry pipelines
  • flow - Generates network flow records, exported by the flow output (UDP wire formats) or otlp-grpc (as OTLP logs)
  • f5 - Generates a weighted mix of syslog log lines across the F5 product portfolio

Outputs

  • nop - No operation output for testing infrastructure without sending data
  • file - Writes telemetry to files with automatic rotation and compression
  • otlp-grpc - Sends telemetry via OpenTelemetry Protocol (OTLP) over gRPC
  • stdout - Writes telemetry to standard output for debugging and testing
  • syslog - Formats and sends logs via syslog (RFC 3164 or 5424) over UDP or TCP
  • tcp - Sends telemetry over TCP connections with optional TLS encryption
  • udp - Sends telemetry over UDP connections
  • hec - Sends logs to Splunk over the HTTP Event Collector, with batching, TLS, and indexer acknowledgement
  • flow - Exports flow records over UDP in NetFlow, sFlow, or IPFIX wire formats
  • prometheus-remote-write - Pushes metrics to a Prometheus remote-write endpoint (1.0 or 2.0)
  • prometheus-scrape - Serves metrics on an HTTP /metrics endpoint for a Prometheus scraper

Installation

Blitz supports the following platforms:

  • Operating Systems: Linux, macOS (Darwin), Windows, FreeBSD
  • CPU Architectures: amd64 (x86_64), arm64

If your platform is not listed above, please open an issue and we'll do our best to add support for it.

CLI

Download the binary for your platform from the latest release:

Extract the archive and run the binary directly in a terminal:

tar -xzf blitz_*_linux_amd64.tar.gz

Run with default NOP configuration:

./blitz

Run with JSON generator and TCP output:

./blitz \
  --generator-type json \
  --generator-json-workers 2 \
  --generator-json-rate 500ms \
  --output-type tcp \
  --output-tcp-host logs.example.com \
  --output-tcp-port 9090 \
  --output-tcp-workers 3 \
  --logging-level info

Linux Systemd Service

Download the appropriate package for your Linux distribution from the latest release:

  • Debian/Ubuntu: blitz_amd64.deb or blitz_arm64.deb
  • Red Hat/CentOS/Fedora: blitz_amd64.rpm or blitz_arm64.rpm

Install the package with your package manager:

Debian

sudo apt-get install -f ./blitz_amd64.deb

RHEL

sudo dnf install ./blitz_amd64.rpm

Edit the configuration file:

sudo vi /etc/blitz/config.yaml

Example minimal configuration for JSON generator and TCP output:

generator:
  type: json
  json:
    workers: 2
    rate: 500ms
output:
  type: tcp
  tcp:
    host: logs.example.com
    port: 9090
    workers: 3
logging:
  level: info

Enable and start the service

sudo systemctl enable blitz
sudo systemctl start blitz
sudo systemctl status blitz

View service logs:

sudo journalctl -u blitz -f

Container

Pull the Docker image from GitHub Container Registry and run it with environment variables for configuration:

Run with default NOP configuration:

docker run --rm ghcr.io/observiq/blitz:latest

Run with JSON generator and TCP output:

docker run --rm \
  -e BLITZ_GENERATOR_TYPE=json \
  -e BLITZ_GENERATOR_JSON_WORKERS=2 \
  -e BLITZ_GENERATOR_JSON_RATE=500ms \
  -e BLITZ_OUTPUT_TYPE=tcp \
  -e BLITZ_OUTPUT_TCP_HOST=logs.example.com \
  -e BLITZ_OUTPUT_TCP_PORT=9090 \
  -e BLITZ_OUTPUT_TCP_WORKERS=3 \
  -e BLITZ_LOGGING_LEVEL=info \
  ghcr.io/observiq/blitz:latest

For detailed configuration options, see the Configuration Guide.

Community

The Blitz is an open source project. If you'd like to contribute, take a look at our contribution guidelines and developer guide. We look forward to building with you.

Similar Tools

  • flog - A fake log generator for common log formats

About

Load generation utility for load testing Bindplane and OpenTelemetry collectors

Resources

Code of conduct

Contributing

Security policy

Stars

9 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

0