Skip to content

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

  • State File Format:
    The state file now includes additional fields (such as Epoch and federated). 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 Federated field to your configuration.
    • To take advantage of stale alert detection, set the StaleThreshold parameter (default is 1 hou
      r).
    • For advanced scheduling, use the new RandomSpread and RunInterval options in your check defi
      nitions.
  • CRON Usage:
    The documentation now recommends using the -s flag with OpenBSD's CRON to prevent overlapping ru
    ns. This is only available on OpenBSD.


How to Upgrade

  1. Replace the Gogios binary with the new version.
  2. Review and update your configuration file to include any new options you wish to use.
  3. (Optional) Remove the old state.json if you encounter state-related issues.
  4. Restart or reschedule your CRON jobs as needed.

Thank you for using Gogios! Your feedback and contributions help make it better.