A cloud-native, distributed uptime monitor written in Go
MIT License
⚠️ Upmon is currently being actively developed. Until it reaches v1.0.0 breaking changes may occur in minor versions.
Upmon is a service for monitoring uptime. It is distributed and built around a gossip mechanism, providing eventual consistency. By easily creating a cluster of uptime monitors, a failure-tolerant uptime monitoring service may be deployed in minutes.
Upcoming.
Quickstart Features Contributing
Please view the docs on GitHub pages or see them in the docs
folder.
To view them offline in your browser, first install docsify by executing npm install --global docsify-cli
and then run docsify serve docs
in the project's folder.
Any help with the project is more than welcome. The project is still in its infancy and not recommended for production.
Dependencies beyond Go and Make:
make install-tools
)
String()
method for iota
s# Clone the repository
https://github.com/AlexGustafsson/upmon.git && cd upmon
# Show available commands
make help
## Dependencies
# Install tools such as stringer
make install-tools
## Building
# Build the server
make build
# Generate API clients etc.
make generate
## Code quality
# Format code
make format
# Lint code
make lint
# Vet the code
make vet
# Check the code for security issues
make gosec
## Testing
# Run tests
make test
To simplify development, vet
, gosec
and test
are all run by executing make check
.
Note: due to a bug (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93082, https://bugs.llvm.org/show_bug.cgi?id=44406, https://openradar.appspot.com/radar?id=4952611266494464), clang is required when building for macOS. GCC cannot be used.