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
-
State File Format:
The state file now includes additional fields (such asEpochandfederated). Existing state fi
les should continue to work, but if you encounter issues, consider removing the old state file (sta te.json) to allow Gogios to regenerate it. -
Configuration Updates:
- If you wish to use federated monitoring, add the
Federatedfield to your configuration. - To take advantage of stale alert detection, set the
StaleThresholdparameter (default is 1 hou
r). - For advanced scheduling, use the new
RandomSpreadandRunIntervaloptions in your check defi
nitions.
- If you wish to use federated monitoring, add the
-
CRON Usage:
The documentation now recommends using the-sflag with OpenBSD's CRON to prevent overlapping ru
ns. This is only available on OpenBSD.
How to Upgrade
- Replace the Gogios binary with the new version.
- Review and update your configuration file to include any new options you wish to use.
- (Optional) Remove the old
state.jsonif you encounter state-related issues. - Restart or reschedule your CRON jobs as needed.
Thank you for using Gogios! Your feedback and contributions help make it better.