Releases: snonux/gogios
Release list
v1.4.2
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
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.
- Ensures that checks which are stale but healthy (OK) are still visible in regular status reports
-
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.
- Users will see the same information regardless of the report format, improving reliability and t
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
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:#toC:# W:# U:# S:# SU:# OK:#. If you parse the subject line or summary string, update your parsing logic. - State file fields
outputandfederatedFromare 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
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
RunIntervalandrandomSpreadoptions 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
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
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 aRandomSpreadparameter, 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.
- Added an option to disable SMTP notifications (
-
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
-sflag for serializing jobs.
- Updated documentation to cover new features, including federated monitoring, stale alerts, and a
-
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
...
v1.1.0
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
-forceflag 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
ioutilpackage)
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/andinternal/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
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
RetriesandRetryIntervalallow 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
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
--versionflag, 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
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
-renotifyflag - 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.