Quick Start | Documentation | Contribute
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
- Deployable as a single node or an entire cluster
- Support for monitoring via pings, TCP sockets, HTTP requests and more
- Easily extensible to provide new monitoring capabilities
- Simple (optional) API for monitoring the status of services
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:
- Go tools (installed by running
make install-tools
)- stringer - used to generate the
String()
method foriota
s
- stringer - used to generate the
- Other
- openapi-generator - used to generate the models and client for the REST API
# 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.