-
Checks may now return "facts" as part of their results, for example server response times or HTTP codes. These are not handled by Goplum itself but are passed on to alerts and API clients. (#34)
-
All results will get a
check_time
fact by default, containing the time the check took to execute.
-
-
Added
portscan
check to thenetwork
plugin, which fails if unpermitted ports are found to be open.
-
Checks can implement the
LongRunning
interface if they intentionally run over long periods of time. This allows them to extend the default timeout based on their own unique configuration. -
Arrays in goplum’s config file can now contain types other than strings. See the syntax guide for more details.
-
Improved formatting of error messages when an unexpected token is found in the config file.
-
Update to Go 1.17
-
Official container images are how hosted on GitHub (
ghcr.io/csmith/goplum
) rather than DockerHub. Changed base images to those from csmith/dockerfiles.
-
Added
smtp
plugin to send alerts by e-mail (#4) -
Added
msteams
plugin for sending messages to Microsoft Teams. -
Added
discord
plugin to send alerts to Discord (#16) -
Added
snmp
plugin to check values from SNMP (#26) -
The
http.get
check now allows you to specify a range of acceptable status codes, which lets you check that a URL returns an error.
-
Docker images now include a
/notices
directory containing copyright information for all compiled code. -
The
Config
field in theAlertDetails
struct passed to alerts is now correctly populated. -
The gRPC API and the
plumctl
client now require TLS 1.3 or greater. -
Goplum is now compiled with Golang 1.16.
-
Goplum is now stricter about validating its configuration on startup:
-
Verbose logging can now be suppressed with the quiet flag (#29)
-
GoPlum now exposes a gRPC API to allow for custom tooling and integration with other services. See the API docs for further information. (#30)
-
Checks can now be suspended and resumed (via the API), for e.g. planned maintenance (#31)
-
Added
plumctl
command line tool that uses the API to interact with a GoPlum instance. See the plumctl docs for further information. -
The configuration file now supports plugin-specific config via
plugin <identifier> {}
blocks. (#33) -
Added a
heartbeat
plugin to enable monitoring or periodic/offline tasks such as cron jobs. See the heartbeat documentation for more information. (#32)
-
Small improvement to error messages for invalid config keys
-
GoPlum now errors if checks or alerts have duplicate names (this was previously documented but not enforced)
-
Plugins can now implement the Validator interface to check their own configuration in the same way as Alerts and Checks
-
Checks can now implement the Stateful interface to backup and restore their internal state
-
The
http.get
check can now make sure content isn’t present (#28) -
The
http.get
check now supports basic authentication (#7) -
Added a timeout setting for checks, and updated bundled plugins to respect it (#10)
-
Check state is now persisted across restarts (#14)
-
Added
twilio.call
alert for announcing alerts using TTS over a phone call. -
Added
http.healthcheck
check for monitoring healthcheck endpoints. (#2)
-
Checks are now executed in parallel
-
Fixed potential resource leak in several checks/alerts using HTTP requests
-
Fixed timing issues if a check took a long time to execute
-
Fixed issue with connection reuse when multiple http.get checks ran against the same host (#21)