It's webhook handler for uptime.com. You can define multiple teams and multiple notifiers for each team.
- Uptime.com will monitor our targets ( HTTP/S - ICMP - DNS - API - ... )
- Notify our webhook after making a decision
- Our webhook handler will send the final alert based on teams and any enabled platform.
-
Create your configuration file. You can use
config.yml.exampleas a template. -
Add your Squadcast configuration to the
config.ymlfile. -
Run
docker-compose up -dto start the service or run it manually:docker run -d \ --name uptime-webhook \ -p 8080:8080 \ -v /path/to/config.yml:/app/configs/config.yml \ hatamiarash7/uptime-webhook:latest -
Go to Uptime dashboard and create a new webhook in Notifications / Integrations section.
-
Use your deployed webhook URL like this:
http://<your-host>:8080/api/v1/alert/ -
Wait for alerts 😁 Or you can send a test alert in Uptime dashboard.
You can use multiple notifiers at the same time. Just define them to the config.yml file. There is a config.yml.example file in the configs directory. You can use it as a template.
-
Create a new Service in Squadcast ( Or use an existing one )
-
Use
Incident Webhookas an alert source -
Define that in
config.ymlfilenotifier: squadcast: enable: true teams: team1: "<WEBHOOK-URL>" team2: "<WEBHOOK-URL>"
Fill your notifier with a telegram section like this:
notifier:
telegram:
enable: true
host: "https://api.telegram.org/bot"
token: "1234:ABCD"
teams:
team1:
- chat: "-123456789"
team2:
- chat: "-124564"
topic: "56789"
- chat: "-356457"
topic: "982456"Note
You can use multiple chat/topic for each team.
-
Create a new Application in Slack
-
Use
Incoming Webhookas type -
Define the webhook in
config.ymlfilenotifier: slack: enable: true teams: team1: "<WEBHOOK-URL>" team2: "<WEBHOOK-URL>"
-
Create a new channel in Mattermost
-
Create a new webhook and assign it to your channel
-
Define the webhook in
config.ymlfilenotifier: mattermost: enable: true teams: team1: "<WEBHOOK-URL>" team2: "<WEBHOOK-URL>"
Fill your notifier with a custom section and put your webhook URL like this:
notifier:
custom:
enable: true
teams:
team1: "<WEBHOOK-URL>"
team2: "<WEBHOOK-URL>"We have some metrics for monitoring our service in /metrics path.
| Metric name | Label | Description |
|---|---|---|
UPTIME_webhook_total_alerts |
Total number of alerts | |
UPTIME_webhook_telegram_success |
Total number of successful Telegram notify | |
UPTIME_webhook_telegram_failure |
Total number of failure Telegram notify | |
UPTIME_webhook_squadcast_success |
Total number of successful Squadcast notify | |
UPTIME_webhook_squadcast_failure |
Total number of failure Squadcast notify | |
UPTIME_webhook_mattermost_success |
Total number of successful Mattermost notify | |
UPTIME_webhook_mattermost_failure |
Total number of failure Mattermost notify | |
UPTIME_webhook_slack_success |
Total number of successful Slack notify | |
UPTIME_webhook_slack_failure |
Total number of failure Slack notify | |
UPTIME_webhook_custom_success |
Total number of successful Custom Webhook notify | |
UPTIME_webhook_custom_failure |
Total number of failure Custom Webhook notify | |
UPTIME_webhook_alert_pool_capacity |
The alert pool capacity | |
UPTIME_webhook_alert_pool_running_jobs |
Total number of active jobs in alert pool | |
UPTIME_webhook_check_status |
service |
Status of the last check (1 = up, 0 = down) |
You can configure monitoring in config.yml file:
monitoring:
enable: true
path: "/metrics"
password: "1234"There is basic authentication for /metrics path with username admin and your chosen password.
Don't be shy and reach out to us if you want to contribute 😉
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature - Commit your changes:
git commit -am 'Add some feature' - Push to the branch:
git push origin my-new-feature - Submit a pull request
Each project may have many problems. Contributing to the better development of this project by reporting them. 👍




