Skip to content

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 logs output 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.

yaml
system:
  enabled: true
  metrics:
    - cpu_usage_percent
    - ram_usage_percent
    - disk_usage_percent
    - network_bytes_sent_per_sec

Application Metrics ​

Collect custom metrics from your applications by pointing Probestyx at your app's metrics endpoint.

yaml
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.

yaml
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: json

Architecture ​

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 ​

FeatureProbestyxPrometheus Node ExporterTelegraf
Primary PurposeLogstyx integrationPrometheus metricsInfluxDB/general
Output FormatJSONPrometheusMultiple
ConfigurationYAMLFlagsTOML
Custom Metrics✅ Built-in scraping❌ Separate exporters✅ Input plugins
Metric Transformation✅ Calculate field❌ No✅ Processors
Authentication✅ Optional HMAC❌ No✅ Various
InstallationSingle binary + scriptSingle binarySingle 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 ​

Next Steps ​

Released under the MIT License.