Overview
Probestyx is a lightweight metrics collection agent designed to scrape, aggregate, and expose system and custom metrics through a simple HTTP API. It's a standalone metrics-gathering agent but still works seamlessly with the Logstyx logging platform.
What is Probestyx?
Probestyx is a standalone service that runs on your servers to collect metrics from multiple sources:
- System metrics: CPU, memory, disk, network, and process statistics
- Custom metrics: Pull data from URLs, local files, or other applications
- Third-party metrics: Scrape Prometheus exporters, JSON APIs, or text-based outputs
All collected metrics are aggregated and exposed at a single HTTP endpoint (/metrics), making it easy to poll from monitoring systems like Logstyx.
Key Features
🔧 Flexible Metric Collection
- Built-in system metrics for CPU, RAM, disk, network, and processes
- Multiple source types: HTTP endpoints, local files, and shell commands (e.g.
docker logs) - Multiple format support: JSON, Prometheus exposition format, raw text parsing, and log-line grepping
- Metric transformations: Apply calculations to modify values (e.g., convert bytes to MB)
- Error log monitoring: Tail an nginx error log or
docker logsoutput for lines matching a pattern, reporting only what's new since the last scrape — see Scrapers → Log Parser
🎯 Easy Integration
- Single endpoint: All metrics available at
/metrics - JSON output: Easy to parse and integrate
- Optional authentication: HMAC-based signing for secure communication
- Logstyx-ready: Works out-of-the-box with Logstyx probes
⚡ Lightweight & Fast
- Small footprint: Minimal resource usage
- Written in Go: Fast, compiled binary with no runtime dependencies
- Configurable caching: Reduce load on scraped sources
- Pattern filtering: Include/exclude metrics to reduce payload size
🚀 Production Ready
- Cross-platform: Linux, macOS, Windows support
- Systemd/Launchd/NSSM: Runs as a system service with auto-restart
- Docker support: Container-ready with official images
- Easy installation: One-command install scripts for all platforms
How It Works
┌─────────────────────────────────────────────────────────┐
│ Probestyx Agent │
│ │
│ ┌────────────────┐ │
│ │ System Metrics │──┐ │
│ │ • CPU │ │ │
│ │ • RAM │ │ │
│ │ • Disk │ │ ┌──────────────┐ │
│ │ • Network │ ├────────►│ Aggregator │ │
│ └────────────────┘ │ │ │ │
│ │ │ • Collect │ │
│ ┌────────────────┐ │ │ • Transform │ │
│ │ Custom Sources │ │ │ • Filter │ │
│ │ • JSON APIs │──┤ └──────┬───────┘ │
│ │ • Prom Files │ │ │ │
│ │ • Text Files │ │ │ │
│ └────────────────┘ │ ▼ │
│ │ ┌──────────────┐ │
│ ┌────────────────┐ │ │ HTTP Server │ │
│ │ External Apps │ │ │ :9100 │ │
│ │ • Node Export │──┘ │ │ │
│ │ • App APIs │ │ GET /metrics │◄───────┼──── Logstyx
│ └────────────────┘ │ GET /health │ │ Probe
│ └──────────────┘ │
└─────────────────────────────────────────────────────────┘Use Cases
Server Monitoring
Deploy Probestyx on each server to collect system metrics and send them to Logstyx for centralized monitoring and alerting.
system:
enabled: true
metrics:
- cpu_usage_percent
- ram_usage_percent
- disk_usage_percent
- network_bytes_sent_per_secApplication Metrics
Collect custom metrics from your applications by pointing Probestyx at your app's metrics endpoint.
scrapers:
- name: app_metrics
source:
type: url
url: "http://localhost:8080/stats"
format: json
metrics:
- path: "requests.total"
name: "total_requests"Multi-Source Aggregation
Combine metrics from multiple sources (system, Prometheus exporters, custom apps) into a single endpoint.
system:
enabled: true
metrics:
- cpu_usage_percent
scrapers:
- name: node_exporter
source:
type: url
url: "http://localhost:9100/metrics"
format: prometheus
metrics:
- match: "node_memory_.*"
- name: app_stats
source:
type: file
path: "/var/app/stats.json"
format: jsonArchitecture
Probestyx follows a simple, modular architecture:
- System Collector: Native Go libraries to collect OS metrics
- Scrapers: Pluggable collectors for external sources
- Parser: Supports JSON, Prometheus, and regex-based parsing
- Transformer: Apply calculations and filters to metrics
- HTTP Server: Exposes aggregated metrics via REST API
- Optional Auth: HMAC-SHA256 request signing
Comparison with Alternatives
| Feature | Probestyx | Prometheus Node Exporter | Telegraf |
|---|---|---|---|
| Primary Purpose | Logstyx integration | Prometheus metrics | InfluxDB/general |
| Output Format | JSON | Prometheus | Multiple |
| Configuration | YAML | Flags | TOML |
| Custom Metrics | ✅ Built-in scraping | ❌ Separate exporters | ✅ Input plugins |
| Metric Transformation | ✅ Calculate field | ❌ No | ✅ Processors |
| Authentication | ✅ Optional HMAC | ❌ No | ✅ Various |
| Installation | Single binary + script | Single binary | Single binary |
| Binary Size | ~10-15 MB | ~20 MB | ~50-100 MB |
Choose Probestyx if:
- You're using Logstyx for centralized logging
- You want JSON output with minimal configuration
- You need to aggregate metrics from multiple sources
- You want built-in metric transformations
Choose alternatives if:
- You're deeply invested in Prometheus ecosystem
- You need advanced metric processing pipelines
- You require native InfluxDB line protocol
Performance
Probestyx is designed to be lightweight and efficient:
- Memory footprint: 10-30 MB typical usage
- CPU usage: <1% idle, 2-5% during collection
- Collection speed: <100ms for typical configurations
- Concurrent scrapers: Parallel execution for faster aggregation
Security
- Optional authentication: Enable HMAC signing to prevent unauthorized access
- No data storage: Metrics are collected and served, not stored
- Read-only operations: No write capabilities to monitored systems
- Configurable timeouts: Prevent hanging on slow sources
Support & Community
- Source Code: GitHub Repository
- Issues: Report a bug
Next Steps
- Installation - Install Probestyx on your system
- Configuration - Learn how to configure Probestyx
- System Metrics - Available system metrics reference
- Integration - Connect Probestyx to Logstyx