Skip to content

Releases: snonux/gogios

v1.4.2

Choose a tag to compare

@snonux snonux released this 21 Jul 20:30

Release v1.4.2

Release Notes

Overview

This release refreshes the Gogios HTML status page with a compact, monospace layout matching the goprecords.f3s.buetow.org aesthetic, and reorganizes packaging targets out of the Magefile into a dedicated configuration repository.

Improvements

Status Page Redesign

The HTML report now uses a full-width, monospace layout with tighter spacing and a bordered footer. This makes the status page faster to scan and visually consistent with the rest of the f3s.buetow.org family of sites. Severity colors (red/orange/grey/green) are preserved for at-a-glance status recognition, while link colors follow the reference palette.

Build Tooling Cleanup

OpenBSD build and deploy targets (Openbsd, BuildOpenbsd, DeployOpenbsd) have been removed from the Magefile and relocated to conf/packages. This consolidates all packaging logic in one place, simplifying the Magefile and keeping platform-specific packaging concerns separate from the core build process. The standard Build target now documents that it builds for the current platform.

Bug Fixes

None in this release.

Breaking Changes

There are no breaking changes. Existing configurations continue to work unchanged.

Migration Steps

No migration required. If you previously invoked mage Openbsd, mage BuildOpenbsd, or mage DeployOpenbsd directly, use the equivalent targets in the conf/packages configuration instead.

v1.4.1

Choose a tag to compare

@snonux snonux released this 22 Feb 15:11

Release v1.4.1

openai:gpt-4.1
────────────────────────────────────────────────────────────────────────────────────────────────────

Release Notes

Overview

This release focuses on improving the accuracy and clarity of status reporting in Gogios, particular
ly in how stale checks are handled in both HTML and text reports. It also includes minor bug fixes a
nd version updates to ensure a smoother monitoring experience.


Improvements

More Accurate Status Reporting

  • Stale Check Handling Refined:
    Previously, stale checks (checks that haven't reported in a while) were excluded from non-stale re
    ports, regardless of their status. Now, only stale checks with a non-OK status are excluded from non
    -stale reports.
    Why this matters:

    • Ensures that checks which are stale but healthy (OK) are still visible in regular status reports
      .
    • Reduces confusion by only hiding stale checks that are not OK, making it easier to focus on acti
      onable issues.
  • Consistent Logic in HTML and Text Reports:
    The logic for filtering stale checks is now consistent across both HTML and text status reports.
    Why this matters:

    • Users will see the same information regardless of the report format, improving reliability and t
      rust in the monitoring output.

Bug Fixes

  • Suppressed Checks Handling:
    No changes were made in this release, but the code continues to ensure that OK checks are never su
    ppressed, maintaining transparency in reporting.

  • Version Update:
    The internal version string is updated to v1.4.1 to reflect these changes.


Other Changes

  • Code Clean-up:
    Minor formatting and whitespace improvements for better maintainability.

Migration Notes

  • No Breaking Changes:
    This release is fully backward compatible. No configuration changes or migrations are required.

Summary

Gogios v1.4.1 enhances the clarity of monitoring reports by ensuring that healthy, stale checks rema
in visible and that reporting is consistent across formats. These improvements help users quickly id
entify and focus on real issues, making system monitoring more effective and less noisy.

v1.4.0

Choose a tag to compare

@snonux snonux released this 14 Feb 20:54

Release v1.4.0

Release Notes

Gogios v1.4.0 focuses on Prometheus integration, alert suppression for maintenance windows, peer failover alerting, and improved reporting — making Gogios more capable in heterogeneous monitoring environments.

Features

Prometheus Integration

Gogios can now scrape alerts from Prometheus Alertmanager and include them in monitoring reports. Configure one or more Prometheus hosts with automatic failover — if the first host is unreachable, Gogios tries the next. The Prometheus Watchdog alert receives special handling: its absence triggers a CRITICAL alert, ensuring you're notified if Alertmanager itself stops working.

Alert Suppression (OnlyIfNotExists)

Suppress alerts during planned maintenance by creating a simple marker file. Suppression works globally for all Prometheus alerts or per individual check, with a configurable maximum age so alerts automatically resume even if you forget to remove the file. Suppressed alerts appear in a dedicated section of reports for visibility.

Peer Failover Alerting

Configure a peer Gogios instance so that if your primary monitoring node goes down, the secondary can detect stale reports and raise alerts. This eliminates single points of failure in your monitoring infrastructure.

Minimum Notification Interval

New MinNotifyIntervalS setting batches email notifications over a configurable window, reducing alert noise during flapping or cascading failures. Emails are only sent when the interval has elapsed and a state change has occurred.

JSON Status Report

A machine-readable JSON report is now written alongside the HTML status page, enabling integration with dashboards, scripts, or other tooling.

Status Page Link in Emails

Email notifications now include a link to the HTML status page (StatusPageURL), giving recipients one-click access to the full report.

Improvements

  • OK checks section added to the HTML status page for a complete view of all monitored services
  • Stale alerts now exclude checks in OK status, reducing noise from benign staleness
  • Summary line updated to C:# W:# U:# S:# SU:# OK:#, adding suppressed count
  • Version management centralized into internal/version.go
  • Error handling improved in main.go — Gogios now exits with a proper error code and message on failure
  • OpenBSD cross-compilation fixed to use per-command environment variables instead of global os.Setenv, preventing side effects in the build process

Breaking Changes

  • Status summary format changed from C:# W:# U:# S:# OK:# to C:# W:# U:# S:# SU:# OK:#. If you parse the subject line or summary string, update your parsing logic.
  • State file fields output and federatedFrom are now exported (Output, FederatedFrom). Existing state files will lose these values on first run after upgrade, triggering a one-time re-notification.

v1.3.0

Choose a tag to compare

@snonux snonux released this 08 Jan 17:47

Release v1.3.0

Release Notes

Overview

This release introduces an HTML status page feature, allowing you to publish a self-refreshing web dashboard of your monitoring status. It also improves federated monitoring by showing the source hostname for remote checks.

Features

HTML Status Page Generation

Gogios can now generate a static HTML status page that auto-refreshes every 5 minutes. This enables you to:

  • Host a simple web dashboard without additional infrastructure
  • Share monitoring status with team members via any web server
  • View alerts, status changes, and stale checks at a glance

Configuration:

{
  "HTMLStatusFile": "/var/www/html/status.html",
  "HTMLDisable": false
}

The page includes color-coded status indicators, a summary header (Critical/Warning/Unknown/Stale/OK counts), and sections for status changes, unhandled alerts, and stale checks.

Improved Federated Monitoring Display

Federated checks now display their source hostname instead of a generic "[federated]" label. Reports now show [federated from remote.example.com], making it easier to identify which remote instance reported each check.

Improvements

  • Check intervals: Added RunInterval and randomSpread options for finer control over check scheduling
  • Atomic file writes: HTML status page uses atomic writes (write to temp file, then rename) to prevent serving partial content

Breaking Changes

None. Existing configurations will continue to work. HTML generation is enabled by default but can be disabled with "HTMLDisable": true.

Upgrade Notes

After upgrading, Gogios will attempt to write an HTML status page to /var/www/htdocs/buetow.org/self/gogios/index.html by default. Set HTMLStatusFile to your preferred path or set HTMLDisable: true to opt out.

v1.2.1

Choose a tag to compare

@snonux snonux released this 03 Nov 01:35

Release v1.2.1

Overview

This patch release updates documentation to reflect the current build tooling used in the project.

Documentation

Updated Build Instructions - Corrected the README to reference mage build instead of the outdated task build command, ensuring users have accurate instructions for compiling Gogios from source.


This is a documentation-only release with no code changes or breaking changes. Existing v1.2.0 users do not need to upgrade unless they want the corrected documentation.

v1.2.0

Choose a tag to compare

@snonux snonux released this 03 Nov 01:33

Release v1.2.0

openai:gpt-4.1
────────────────────────────────────────────────────────────────────────────────────────────────────

Release Notes

Overview

This release of Gogios introduces significant new features and enhancements aimed at improving relia
bility, flexibility, and scalability for small-scale monitoring setups. Key highlights include suppo
rt for federated monitoring, advanced check scheduling options, improved state handling, and several
usability improvements. These changes make it easier to manage distributed environments, avoid aler
t noise, and ensure your monitoring remains robust and easy to operate.


Features

Federated Monitoring

  • Federated Endpoints Support
    Gogios can now query and merge monitoring states from other Gogios instances via HTTP endpoints. T
    his enables you to build a federated or high-availability monitoring setup, where multiple Gogios se
    rvers can share and aggregate their monitoring results.
    Why this matters: You can now monitor distributed or redundant infrastructures and receive a uni
    fied alert report, increasing reliability and coverage.

  • Comprehensive Unit Tests for Federation
    Extensive tests have been added to ensure the reliability and correctness of the new federated mon
    itoring feature.

Advanced Check Scheduling

  • Randomized Check Spread (RandomSpread)
    Each check can now be configured with a RandomSpread parameter, causing it to wait a random numb
    er of seconds (up to the specified value) before execution.
    Why this matters: This helps avoid all checks running at the same time, reducing load spikes and
    preventing false positives due to resource contention.

  • Per-Check Run Interval (RunInterval)
    Checks can now specify a minimum interval between executions.
    Why this matters: If you run Gogios more frequently than you want a specific check to execute, t
    his prevents unnecessary or redundant checks, reducing noise and resource usage.

  • Stale Alert Detection
    Checks that have not been updated within a configurable threshold (StaleThreshold) are now repor
    ted as "stale".
    Why this matters: This helps you detect checks that may be failing silently or not running as ex
    pected, improving monitoring reliability.

Enhanced State Handling

  • Persistent State Directory Creation
    Gogios now ensures the state directory exists before writing state files, improving robustness on
    first run or after system changes.

  • Report Persistence
    The latest alert report is now saved to a file in the state directory, making it easy to review th
    e most recent notification even if email delivery fails.


Improvements

  • Notification Enhancements

    • Added an option to disable SMTP notifications (SMTPDisable), useful for testing or alternative
      notification setups.
    • Improved notification subject lines to include stale alert counts.
  • Configuration & Documentation

    • Updated documentation to cover new features, including federated monitoring, stale alerts, and a
      dvanced check scheduling.
    • Clarified CRON usage and highlighted the usefulness of OpenBSD's -s flag for serializing jobs.
  • Code Quality

    • Refactored code for clarity and maintainability.
    • Added linting and vetting tasks for development workflow.
    • Improved error handling and logging throughout the codebase.

Bug Fixes

  • Fixed notification naming issues and output typos.
  • Corrected JSON tag usage for configuration and state.
  • Resolved issues with unknown status handling and state merging.
  • Ensured proper handling of unhandled and stale alerts in reports.
  • Fixed concurrency and retry logic for checks.

Other Changes

  • Added a Magefile for streamlined development tasks (build, test, lint, OpenBSD deployment).
  • Updated Go version and dependencies.
  • Added a project logo and referenced a related blog post for further reading.

Breaking Changes & Migration Notes

                                                                             ...
Read more

v1.1.0

Choose a tag to compare

@snonux snonux released this 12 Jul 10:56

Release v1.1.0

Release Notes

This release brings significant improvements to Gogios' reliability, usability, and maintainability. Key highlights include enhanced error handling, a new force notification feature for health monitoring, improved dependency management, and better development tooling.

✨ New Features

Force Notification Flag

  • Added -force flag to send notifications even when all checks are OK
  • Useful for verifying email server functionality and ensuring monitoring system health
  • Recommended for weekly health checks via cron

Enhanced Retry Logic

  • Added configurable retry attempts and retry intervals for failed checks
  • Improves reliability by reducing false positives from temporary network issues
  • Helps distinguish between transient and persistent problems

Automatic State Directory Creation

  • Gogios now automatically creates the state directory if it doesn't exist
  • Eliminates manual setup steps and reduces deployment complexity
  • Includes OpenBSD-specific rc.local setup instructions

🔧 Improvements

Better Error Handling

  • Improved error reporting and logging throughout the application
  • More descriptive error messages for easier troubleshooting
  • Enhanced dependency validation with clearer error messages

Code Quality & Maintenance

  • Refactored codebase into logical internal packages for better organization
  • Added comprehensive linting and vetting checks
  • Improved code consistency and reduced technical debt
  • Updated to use modern Go practices (replaced deprecated ioutil package)

Development Experience

  • Added Taskfile.yml for streamlined development workflows
  • Integrated GoReleaser for automated release management
  • Added proper version string management
  • Improved project structure following Go best practices

🐛 Bug Fixes

  • Fixed timeout handling for check commands
  • Corrected JSON field tags for proper configuration parsing
  • Fixed dependency error handling and context management
  • Resolved various lint warnings and code issues

📝 Documentation Updates

  • Enhanced README with clearer setup instructions
  • Added OpenBSD-specific configuration guidance
  • Improved cron job examples with force notification schedule
  • Better documentation of retry functionality

🔄 Internal Changes

  • Reorganized code structure with cmd/ and internal/ packages
  • Standardized naming conventions (e.g., Nagios status codes)
  • Improved configuration handling and validation
  • Enhanced notification system reliability

This release maintains full backward compatibility with existing configurations while providing new capabilities for more robust monitoring setups.

v1.0.2

Choose a tag to compare

@snonux snonux released this 12 Jul 10:56

Release v1.0.2

Release Notes

This release introduces retry capabilities for failed checks and enhances the project documentation with visual branding and improved examples.

New Features

Retry Mechanism for Failed Checks

  • Added configurable retry functionality to improve reliability of monitoring checks
  • New configuration options Retries and RetryInterval allow checks to automatically retry on failure
  • Failed checks will now retry up to the specified number of times with a configurable delay between attempts
  • This reduces false alerts caused by temporary network issues or brief service interruptions

Improvements

Enhanced Documentation and Branding

  • Added official Gogios logo and visual branding to README
  • Improved configuration examples with retry settings demonstrated
  • Added Taskfile.yml for streamlined build process using go-task
  • Enhanced project description to better explain use cases and target audience
  • Added reference to upcoming Gorum project for advanced clustering features

Better User Experience

  • Improved error messages for dependency validation
  • Added comprehensive documentation for NRPE remote monitoring setup
  • Clarified high-availability setup instructions and trade-offs

Technical Improvements

Code Quality and Architecture

  • Refactored check execution logic for better maintainability
  • Split retry logic into separate function for cleaner code organization
  • Improved concurrent check execution with proper resource management
  • Enhanced timeout handling during check retries

Configuration Enhancements

  • Better validation for check dependencies
  • More descriptive error messages when configuration issues are detected

Documentation Updates

  • Added detailed explanation of retry configuration options
  • Improved examples showing real-world monitoring scenarios
  • Enhanced troubleshooting guidance for common setup issues
  • Better explanation of trade-offs between simplicity and features

This release maintains backward compatibility - existing configurations will continue to work without modification. The new retry features are optional and only activate when explicitly configured.

v1.0.1

Choose a tag to compare

@snonux snonux released this 12 Jul 10:56

Release v1.0.1

Release Notes

This is a maintenance release that updates version information and licensing details for better project management and clarity.

Updates

Version Management

  • Updated version string: The application now correctly reports version v1.0.1 when using the --version flag, ensuring users can accurately identify which version they're running

Project Information

  • License correction: Fixed the owner field in the LICENSE file to reflect the correct project maintainer information

Technical Details

This release contains minimal changes focused on project metadata accuracy. The core functionality of Gogios remains unchanged, ensuring existing configurations and workflows continue to work without modification.

Files changed: 2 files with 2 insertions and 2 deletions

v1.0.0

Choose a tag to compare

@snonux snonux released this 12 Jul 10:56

Release v1.0.0

Release Notes

This initial release introduces Gogios, a minimalistic monitoring tool written in Go that's compatible with Nagios Check Plugins. Designed for small-scale self-hosted environments, Gogios provides essential monitoring capabilities without the complexity of larger monitoring systems.

🚀 Core Features

Monitoring & Alerting

  • Nagios Plugin Compatibility: Execute any standard Nagios or Icinga monitoring plugin to check services, resources, and infrastructure
  • Email Notifications: Automatically send email reports when check status changes, keeping you informed of issues as they occur
  • State Persistence: Track monitoring states between runs using JSON state files, ensuring notifications are only sent when statuses actually change
  • Concurrent Check Execution: Run multiple monitoring checks simultaneously for faster execution times

Configuration & Management

  • Simple JSON Configuration: Easy-to-understand configuration format for defining checks, timeouts, and email settings
  • Flexible Check Arguments: Pass custom arguments to monitoring plugins for tailored check behavior
  • Dependency Management: Define check dependencies so dependent checks only run when prerequisites are met (e.g., HTTP checks only run if ping succeeds)

Operational Features

  • Global Timeout Protection: Prevent hung checks from blocking the entire monitoring cycle
  • Re-notification Support: Send reminder alerts for unhandled issues using the -renotify flag
  • Detailed Status Reports: Receive comprehensive email reports showing counts of critical, warning, unknown, and OK statuses
  • NRPE Integration: Monitor remote systems using the Nagios Remote Plugin Executor

📊 What You Get

  • Lightweight Operation: Single binary with minimal resource requirements
  • Cross-Platform Support: Compile and run on OpenBSD, Linux, and other Unix-like systems
  • High Availability Ready: Documentation for setting up redundant monitoring servers
  • CRON Integration: Simple scheduling using standard CRON jobs

🎯 Perfect For

  • Small-scale self-hosted environments
  • Users seeking simplicity over feature complexity
  • Infrastructure monitoring without databases or web interfaces
  • Teams familiar with Nagios plugins who want a lighter alternative

📖 Getting Started

Gogios requires a local Mail Transfer Agent (MTA) for email delivery and standard Nagios monitoring plugins. See the included README for detailed installation and configuration instructions, including example configurations for common monitoring scenarios.

This release represents a complete, production-ready monitoring solution focused on simplicity and reliability.