diff --git a/README.md b/README.md index 2c537a44..3d8879ad 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ the response time, the certificate expiration, the body and many others. The ici checks can be paired with alerting via Slack, PagerDuty, Discord and even Twilio. I personally deploy it in my Kubernetes cluster and let it monitor the status of my -core applications: https://status.twinnation.org/ +core applications: https://status.twin.sh/
Quick start @@ -101,7 +101,7 @@ The main features of Gatus are: - **Alerting**: While having a pretty visual dashboard is useful to keep track of the state of your application(s), you probably don't want to stare at it all day. Thus, notifications via Slack, Mattermost, Messagebird, PagerDuty, Twilio and Teams are supported out of the box with the ability to configure a custom alerting provider for any needs you might have, whether it be a different provider or a custom application that manages automated rollbacks. - **Metrics** - **Low resource consumption**: As with most Go applications, the resource footprint that this application requires is negligibly small. -- **[Badges](#badges)**: ![Uptime 7d](https://status.twinnation.org/api/v1/services/core_website-external/uptimes/7d/badge.svg) ![Response time 24h](https://status.twinnation.org/api/v1/services/core_website-external/response-times/24h/badge.svg) +- **[Badges](#badges)**: ![Uptime 7d](https://status.twin.sh/api/v1/services/core_website-external/uptimes/7d/badge.svg) ![Response time 24h](https://status.twin.sh/api/v1/services/core_website-external/response-times/24h/badge.svg) ## Usage @@ -114,8 +114,8 @@ Here's a simple example: ```yaml metrics: true # Whether to expose metrics at /metrics services: - - name: twinnation # Name of your service, can be anything - url: "https://twinnation.org/health" + - name: website # Name of your service, can be anything + url: "https://twin.sh/health" interval: 30s # Duration to wait between every status check (default: 60s) conditions: - "[STATUS] == 200" # Status must be 200 @@ -282,8 +282,8 @@ Note that this configuration is only available under `services[]`, `alerting.mat Here's an example with the client configuration under `service[]`: ```yaml services: - - name: twinnation - url: "https://twinnation.org/health" + - name: website + url: "https://twin.sh/health" client: insecure: false ignore-redirect: false @@ -326,8 +326,8 @@ alerting: webhook-url: "https://discord.com/api/webhooks/**********/**********" services: - - name: twinnation - url: "https://twinnation.org/health" + - name: website + url: "https://twin.sh/health" interval: 30s conditions: - "[STATUS] == 200" @@ -357,8 +357,8 @@ alerting: insecure: true services: - - name: twinnation - url: "https://twinnation.org/health" + - name: website + url: "https://twin.sh/health" interval: 30s conditions: - "[STATUS] == 200" @@ -393,9 +393,9 @@ alerting: originator: "31619191918" recipients: "31619191919,31619191920" services: - - name: twinnation + - name: website interval: 30s - url: "https://twinnation.org/health" + url: "https://twin.sh/health" conditions: - "[STATUS] == 200" - "[BODY].status == UP" @@ -427,8 +427,8 @@ alerting: integration-key: "********************************" services: - - name: twinnation - url: "https://twinnation.org/health" + - name: website + url: "https://twin.sh/health" interval: 30s conditions: - "[STATUS] == 200" @@ -457,8 +457,8 @@ alerting: webhook-url: "https://hooks.slack.com/services/**********/**********/**********" services: - - name: twinnation - url: "https://twinnation.org/health" + - name: website + url: "https://twin.sh/health" interval: 30s conditions: - "[STATUS] == 200" @@ -494,8 +494,8 @@ alerting: webhook-url: "https://********.webhook.office.com/webhookb2/************" services: - - name: twinnation - url: "https://twinnation.org/health" + - name: website + url: "https://twin.sh/health" interval: 30s conditions: - "[STATUS] == 200" @@ -527,8 +527,8 @@ alerting: id: "0123456789" services: - - name: twinnation - url: "https://twinnation.org/health" + - name: website + url: "https://twin.sh/health" interval: 30s conditions: - "[STATUS] == 200" @@ -563,9 +563,9 @@ alerting: to: "+1-234-567-8901" services: - - name: twinnation + - name: website interval: 30s - url: "https://twinnation.org/health" + url: "https://twin.sh/health" conditions: - "[STATUS] == 200" - "[BODY].status == UP" @@ -616,8 +616,8 @@ alerting: "text": "[ALERT_TRIGGERED_OR_RESOLVED]: [SERVICE_NAME] - [ALERT_DESCRIPTION]" } services: - - name: twinnation - url: "https://twinnation.org/health" + - name: website + url: "https://twin.sh/health" interval: 30s conditions: - "[STATUS] == 200" @@ -1048,9 +1048,9 @@ web: ### Badges ### Uptime -![Uptime 1h](https://status.twinnation.org/api/v1/services/core_website-external/uptimes/1h/badge.svg) -![Uptime 24h](https://status.twinnation.org/api/v1/services/core_website-external/uptimes/24h/badge.svg) -![Uptime 7d](https://status.twinnation.org/api/v1/services/core_website-external/uptimes/7d/badge.svg) +![Uptime 1h](https://status.twin.sh/api/v1/services/core_website-external/uptimes/1h/badge.svg) +![Uptime 24h](https://status.twin.sh/api/v1/services/core_website-external/uptimes/24h/badge.svg) +![Uptime 7d](https://status.twin.sh/api/v1/services/core_website-external/uptimes/7d/badge.svg) Gatus can automatically generate a SVG badge for one of your monitored services. This allows you to put badges in your individual services' README or even create your own status page, if you @@ -1075,15 +1075,15 @@ https://example.com/api/v1/services/_frontend/uptimes/7d/badge.svg ``` Example: ``` -![Uptime 24h](https://status.twinnation.org/api/v1/services/core_website-external/uptimes/24h/badge.svg) +![Uptime 24h](https://status.twin.sh/api/v1/services/core_website-external/uptimes/24h/badge.svg) ``` If you'd like to see a visual example of each badges available, you can simply navigate to the service's detail page. ### Response time -![Response time 1h](https://status.twinnation.org/api/v1/services/core_website-external/response-times/1h/badge.svg) -![Response time 24h](https://status.twinnation.org/api/v1/services/core_website-external/response-times/24h/badge.svg) -![Response time 7d](https://status.twinnation.org/api/v1/services/core_website-external/response-times/7d/badge.svg) +![Response time 1h](https://status.twin.sh/api/v1/services/core_website-external/response-times/1h/badge.svg) +![Response time 24h](https://status.twin.sh/api/v1/services/core_website-external/response-times/24h/badge.svg) +![Response time 7d](https://status.twin.sh/api/v1/services/core_website-external/response-times/7d/badge.svg) The endpoint to generate a badge is the following: ``` @@ -1101,13 +1101,13 @@ All services are available via a GET request to the following endpoint: ``` /api/v1/services/statuses ```` -Example: https://status.twinnation.org/api/v1/services/statuses +Example: https://status.twin.sh/api/v1/services/statuses Specific services can also be queried by using the following pattern: ``` /api/v1/services/{group}_{service}/statuses ``` -Example: https://status.twinnation.org/api/v1/services/core_website-home/statuses +Example: https://status.twin.sh/api/v1/services/core_website-home/statuses Gzip compression will be used if the `Accept-Encoding` HTTP header contains `gzip`. diff --git a/alerting/provider/messagebird/messagebird.go b/alerting/provider/messagebird/messagebird.go index 866a6be1..1931d19e 100644 --- a/alerting/provider/messagebird/messagebird.go +++ b/alerting/provider/messagebird/messagebird.go @@ -37,7 +37,6 @@ func (provider *AlertProvider) ToCustomAlertProvider(service *core.Service, aler } else { message = fmt.Sprintf("TRIGGERED: %s - %s", service.Name, alert.GetDescription()) } - return &custom.AlertProvider{ URL: restAPIURL, Method: http.MethodPost, diff --git a/config/config_test.go b/config/config_test.go index 0e6f362f..c5147adf 100644 --- a/config/config_test.go +++ b/config/config_test.go @@ -46,8 +46,8 @@ storage: ui: title: Test services: - - name: twinnation - url: https://twinnation.org/health + - name: website + url: https://twin.sh/health interval: 15s conditions: - "[STATUS] == 200" @@ -83,8 +83,8 @@ services: t.Error("Should have returned two services") } - if config.Services[0].URL != "https://twinnation.org/health" { - t.Errorf("URL should have been %s", "https://twinnation.org/health") + if config.Services[0].URL != "https://twin.sh/health" { + t.Errorf("URL should have been %s", "https://twin.sh/health") } if config.Services[0].Method != "GET" { t.Errorf("Method should have been %s (default)", "GET") @@ -153,8 +153,8 @@ services: func TestParseAndValidateConfigBytesDefault(t *testing.T) { config, err := parseAndValidateConfigBytes([]byte(` services: - - name: twinnation - url: https://twinnation.org/health + - name: website + url: https://twin.sh/health conditions: - "[STATUS] == 200" `)) @@ -173,8 +173,8 @@ services: if config.Web.Port != DefaultPort { t.Errorf("Port should have been %d, because it is the default value", DefaultPort) } - if config.Services[0].URL != "https://twinnation.org/health" { - t.Errorf("URL should have been %s", "https://twinnation.org/health") + if config.Services[0].URL != "https://twin.sh/health" { + t.Errorf("URL should have been %s", "https://twin.sh/health") } if config.Services[0].Interval != 60*time.Second { t.Errorf("Interval should have been %s, because it is the default value", 60*time.Second) @@ -195,8 +195,8 @@ func TestParseAndValidateConfigBytesWithAddress(t *testing.T) { web: address: 127.0.0.1 services: - - name: twinnation - url: https://twinnation.org/actuator/health + - name: website + url: https://twin.sh/actuator/health conditions: - "[STATUS] == 200" `)) @@ -209,8 +209,8 @@ services: if config.Metrics { t.Error("Metrics should've been false by default") } - if config.Services[0].URL != "https://twinnation.org/actuator/health" { - t.Errorf("URL should have been %s", "https://twinnation.org/actuator/health") + if config.Services[0].URL != "https://twin.sh/actuator/health" { + t.Errorf("URL should have been %s", "https://twin.sh/actuator/health") } if config.Services[0].Interval != 60*time.Second { t.Errorf("Interval should have been %s, because it is the default value", 60*time.Second) @@ -228,8 +228,8 @@ func TestParseAndValidateConfigBytesWithPort(t *testing.T) { web: port: 12345 services: - - name: twinnation - url: https://twinnation.org/health + - name: website + url: https://twin.sh/health conditions: - "[STATUS] == 200" `)) @@ -242,8 +242,8 @@ services: if config.Metrics { t.Error("Metrics should've been false by default") } - if config.Services[0].URL != "https://twinnation.org/health" { - t.Errorf("URL should have been %s", "https://twinnation.org/health") + if config.Services[0].URL != "https://twin.sh/health" { + t.Errorf("URL should have been %s", "https://twin.sh/health") } if config.Services[0].Interval != 60*time.Second { t.Errorf("Interval should have been %s, because it is the default value", 60*time.Second) @@ -262,8 +262,8 @@ web: port: 12345 address: 127.0.0.1 services: - - name: twinnation - url: https://twinnation.org/health + - name: website + url: https://twin.sh/health conditions: - "[STATUS] == 200" `)) @@ -276,8 +276,8 @@ services: if config.Metrics { t.Error("Metrics should've been false by default") } - if config.Services[0].URL != "https://twinnation.org/health" { - t.Errorf("URL should have been %s", "https://twinnation.org/health") + if config.Services[0].URL != "https://twin.sh/health" { + t.Errorf("URL should have been %s", "https://twin.sh/health") } if config.Services[0].Interval != 60*time.Second { t.Errorf("Interval should have been %s, because it is the default value", 60*time.Second) @@ -296,8 +296,8 @@ web: port: 65536 address: 127.0.0.1 services: - - name: twinnation - url: https://twinnation.org/health + - name: website + url: https://twin.sh/health conditions: - "[STATUS] == 200" `)) @@ -310,8 +310,8 @@ func TestParseAndValidateConfigBytesWithMetricsAndCustomUserAgentHeader(t *testi config, err := parseAndValidateConfigBytes([]byte(` metrics: true services: - - name: twinnation - url: https://twinnation.org/health + - name: website + url: https://twin.sh/health headers: User-Agent: Test/2.0 conditions: @@ -326,8 +326,8 @@ services: if !config.Metrics { t.Error("Metrics should have been true") } - if config.Services[0].URL != "https://twinnation.org/health" { - t.Errorf("URL should have been %s", "https://twinnation.org/health") + if config.Services[0].URL != "https://twin.sh/health" { + t.Errorf("URL should have been %s", "https://twin.sh/health") } if config.Services[0].Interval != 60*time.Second { t.Errorf("Interval should have been %s, because it is the default value", 60*time.Second) @@ -350,8 +350,8 @@ web: address: 192.168.0.1 port: 9090 services: - - name: twinnation - url: https://twinnation.org/health + - name: website + url: https://twin.sh/health conditions: - "[STATUS] == 200" `)) @@ -370,8 +370,8 @@ services: if config.Web.Port != 9090 { t.Errorf("Port should have been %d, because it is specified in config", 9090) } - if config.Services[0].URL != "https://twinnation.org/health" { - t.Errorf("URL should have been %s", "https://twinnation.org/health") + if config.Services[0].URL != "https://twin.sh/health" { + t.Errorf("URL should have been %s", "https://twin.sh/health") } if config.Services[0].Interval != 60*time.Second { t.Errorf("Interval should have been %s, because it is the default value", 60*time.Second) @@ -427,8 +427,8 @@ alerting: webhook-url: "http://example.com" services: - - name: twinnation - url: https://twinnation.org/health + - name: website + url: https://twin.sh/health alerts: - type: slack enabled: true @@ -471,8 +471,8 @@ services: if len(config.Services) != 1 { t.Error("There should've been 1 service") } - if config.Services[0].URL != "https://twinnation.org/health" { - t.Errorf("URL should have been %s", "https://twinnation.org/health") + if config.Services[0].URL != "https://twin.sh/health" { + t.Errorf("URL should have been %s", "https://twin.sh/health") } if config.Services[0].Interval != 60*time.Second { t.Errorf("Interval should have been %s, because it is the default value", 60*time.Second) @@ -633,8 +633,8 @@ alerting: enabled: true services: - - name: twinnation - url: https://twinnation.org/health + - name: website + url: https://twin.sh/health alerts: - type: slack - type: pagerduty @@ -748,8 +748,8 @@ services: if len(config.Services) != 1 { t.Error("There should've been 1 service") } - if config.Services[0].URL != "https://twinnation.org/health" { - t.Errorf("URL should have been %s", "https://twinnation.org/health") + if config.Services[0].URL != "https://twin.sh/health" { + t.Errorf("URL should have been %s", "https://twin.sh/health") } if config.Services[0].Interval != 60*time.Second { t.Errorf("Interval should have been %s, because it is the default value", 60*time.Second) @@ -871,8 +871,8 @@ alerting: description: "description" services: - - name: twinnation - url: https://twinnation.org/health + - name: website + url: https://twin.sh/health alerts: - type: slack failure-threshold: 10 @@ -946,8 +946,8 @@ alerting: pagerduty: integration-key: "INVALID_KEY" services: - - name: twinnation - url: https://twinnation.org/health + - name: website + url: https://twin.sh/health alerts: - type: pagerduty conditions: @@ -980,8 +980,8 @@ alerting: "text": "[ALERT_TRIGGERED_OR_RESOLVED]: [SERVICE_NAME] - [ALERT_DESCRIPTION]" } services: - - name: twinnation - url: https://twinnation.org/health + - name: website + url: https://twin.sh/health alerts: - type: custom conditions: @@ -1025,8 +1025,8 @@ alerting: insecure: true body: "[ALERT_TRIGGERED_OR_RESOLVED]: [SERVICE_NAME] - [ALERT_DESCRIPTION]" services: - - name: twinnation - url: https://twinnation.org/health + - name: website + url: https://twin.sh/health alerts: - type: custom conditions: @@ -1065,8 +1065,8 @@ alerting: url: "https://example.com" body: "[ALERT_TRIGGERED_OR_RESOLVED]: [SERVICE_NAME] - [ALERT_DESCRIPTION]" services: - - name: twinnation - url: https://twinnation.org/health + - name: website + url: https://twin.sh/health alerts: - type: custom conditions: @@ -1099,7 +1099,7 @@ func TestParseAndValidateConfigBytesWithInvalidServiceName(t *testing.T) { _, err := parseAndValidateConfigBytes([]byte(` services: - name: "" - url: https://twinnation.org/health + url: https://twin.sh/health conditions: - "[STATUS] == 200" `)) @@ -1145,8 +1145,8 @@ security: username: "admin" password-sha512: "invalid-sha512-hash" services: - - name: twinnation - url: https://twinnation.org/health + - name: website + url: https://twin.sh/health conditions: - "[STATUS] == 200" `)) @@ -1164,8 +1164,8 @@ security: username: "%s" password-sha512: "%s" services: - - name: twinnation - url: https://twinnation.org/health + - name: website + url: https://twin.sh/health conditions: - "[STATUS] == 200" `, expectedUsername, expectedPasswordHash))) diff --git a/core/service_test.go b/core/service_test.go index cdaee2ce..0b3d8b4a 100644 --- a/core/service_test.go +++ b/core/service_test.go @@ -25,8 +25,8 @@ func TestService_IsEnabled(t *testing.T) { func TestService_ValidateAndSetDefaults(t *testing.T) { condition := Condition("[STATUS] == 200") service := Service{ - Name: "twinnation-health", - URL: "https://twinnation.org/health", + Name: "website-health", + URL: "https://twin.sh/health", Conditions: []*Condition{&condition}, Alerts: []*alert.Alert{{Type: alert.TypePagerDuty}}, } @@ -70,8 +70,8 @@ func TestService_ValidateAndSetDefaults(t *testing.T) { func TestService_ValidateAndSetDefaultsWithClientConfig(t *testing.T) { condition := Condition("[STATUS] == 200") service := Service{ - Name: "twinnation-health", - URL: "https://twinnation.org/health", + Name: "website-health", + URL: "https://twin.sh/health", Conditions: []*Condition{&condition}, ClientConfig: &client.Config{ Insecure: true, @@ -159,8 +159,8 @@ func TestService_ValidateAndSetDefaultsWithDNS(t *testing.T) { func TestService_buildHTTPRequest(t *testing.T) { condition := Condition("[STATUS] == 200") service := Service{ - Name: "twinnation-health", - URL: "https://twinnation.org/health", + Name: "website-health", + URL: "https://twin.sh/health", Conditions: []*Condition{&condition}, } service.ValidateAndSetDefaults() @@ -168,8 +168,8 @@ func TestService_buildHTTPRequest(t *testing.T) { if request.Method != "GET" { t.Error("request.Method should've been GET, but was", request.Method) } - if request.Host != "twinnation.org" { - t.Error("request.Host should've been twinnation.org, but was", request.Host) + if request.Host != "twin.sh" { + t.Error("request.Host should've been twin.sh, but was", request.Host) } if userAgent := request.Header.Get("User-Agent"); userAgent != GatusUserAgent { t.Errorf("request.Header.Get(User-Agent) should've been %s, but was %s", GatusUserAgent, userAgent) @@ -179,8 +179,8 @@ func TestService_buildHTTPRequest(t *testing.T) { func TestService_buildHTTPRequestWithCustomUserAgent(t *testing.T) { condition := Condition("[STATUS] == 200") service := Service{ - Name: "twinnation-health", - URL: "https://twinnation.org/health", + Name: "website-health", + URL: "https://twin.sh/health", Conditions: []*Condition{&condition}, Headers: map[string]string{ "User-Agent": "Test/2.0", @@ -191,8 +191,8 @@ func TestService_buildHTTPRequestWithCustomUserAgent(t *testing.T) { if request.Method != "GET" { t.Error("request.Method should've been GET, but was", request.Method) } - if request.Host != "twinnation.org" { - t.Error("request.Host should've been twinnation.org, but was", request.Host) + if request.Host != "twin.sh" { + t.Error("request.Host should've been twin.sh, but was", request.Host) } if userAgent := request.Header.Get("User-Agent"); userAgent != "Test/2.0" { t.Errorf("request.Header.Get(User-Agent) should've been %s, but was %s", "Test/2.0", userAgent) @@ -202,8 +202,8 @@ func TestService_buildHTTPRequestWithCustomUserAgent(t *testing.T) { func TestService_buildHTTPRequestWithHostHeader(t *testing.T) { condition := Condition("[STATUS] == 200") service := Service{ - Name: "twinnation-health", - URL: "https://twinnation.org/health", + Name: "website-health", + URL: "https://twin.sh/health", Method: "POST", Conditions: []*Condition{&condition}, Headers: map[string]string{ @@ -223,8 +223,8 @@ func TestService_buildHTTPRequestWithHostHeader(t *testing.T) { func TestService_buildHTTPRequestWithGraphQLEnabled(t *testing.T) { condition := Condition("[STATUS] == 200") service := Service{ - Name: "twinnation-graphql", - URL: "https://twinnation.org/graphql", + Name: "website-graphql", + URL: "https://twin.sh/graphql", Method: "POST", Conditions: []*Condition{&condition}, GraphQL: true, @@ -255,8 +255,8 @@ func TestIntegrationEvaluateHealth(t *testing.T) { condition := Condition("[STATUS] == 200") bodyCondition := Condition("[BODY].status == UP") service := Service{ - Name: "twinnation-health", - URL: "https://twinnation.org/health", + Name: "website-health", + URL: "https://twin.sh/health", Conditions: []*Condition{&condition, &bodyCondition}, } service.ValidateAndSetDefaults() @@ -275,8 +275,8 @@ func TestIntegrationEvaluateHealth(t *testing.T) { func TestIntegrationEvaluateHealthWithFailure(t *testing.T) { condition := Condition("[STATUS] == 500") service := Service{ - Name: "twinnation-health", - URL: "https://twinnation.org/health", + Name: "website-health", + URL: "https://twin.sh/health", Conditions: []*Condition{&condition}, } service.ValidateAndSetDefaults() diff --git a/docs/pagerduty-integration-guide.md b/docs/pagerduty-integration-guide.md index 8b912ac8..b6689ba3 100644 --- a/docs/pagerduty-integration-guide.md +++ b/docs/pagerduty-integration-guide.md @@ -39,9 +39,9 @@ alerting: You can now add alerts of type `pagerduty` in the services you've defined, like so: ```yaml services: - - name: twinnation + - name: website interval: 30s - url: "https://twinnation.org/health" + url: "https://twin.sh/health" alerts: - type: pagerduty enabled: true @@ -56,7 +56,7 @@ services: ``` The sample above will do the following: -- Send a request to the `https://twinnation.org/health` (`services[].url`) specified every **30s** (`services[].interval`) +- Send a request to the `https://twin.sh/health` (`services[].url`) specified every **30s** (`services[].interval`) - Evaluate the conditions to determine whether the service is "healthy" or not - **If all conditions are not met 3 (`services[].alerts[].failure-threshold`) times in a row**: Gatus will create a new incident - **If, after an incident has been triggered, all conditions are met 5 (`services[].alerts[].success-threshold`) times in a row _AND_ `services[].alerts[].send-on-resolved` is set to `true`**: Gatus will resolve the triggered incident diff --git a/examples/docker-compose-grafana-prometheus/config.yaml b/examples/docker-compose-grafana-prometheus/config.yaml index 7b1c281a..7c2b6b21 100644 --- a/examples/docker-compose-grafana-prometheus/config.yaml +++ b/examples/docker-compose-grafana-prometheus/config.yaml @@ -1,7 +1,7 @@ metrics: true services: - name: TwiNNatioN - url: https://twinnation.org/health + url: https://twin.sh/health interval: 30s conditions: - "[STATUS] == 200" diff --git a/examples/kubernetes/gatus.yaml b/examples/kubernetes/gatus.yaml index 489e0dba..fc1555fd 100644 --- a/examples/kubernetes/gatus.yaml +++ b/examples/kubernetes/gatus.yaml @@ -4,7 +4,7 @@ data: metrics: true services: - name: TwiNNatioN - url: https://twinnation.org/health + url: https://twin.sh/health interval: 1m conditions: - "[STATUS] == 200" diff --git a/watchdog/alerting_test.go b/watchdog/alerting_test.go index f5618609..7dd396f5 100644 --- a/watchdog/alerting_test.go +++ b/watchdog/alerting_test.go @@ -20,7 +20,7 @@ func TestHandleAlerting(t *testing.T) { Debug: true, Alerting: &alerting.Config{ Custom: &custom.AlertProvider{ - URL: "https://twinnation.org/health", + URL: "https://twin.sh/health", Method: "GET", }, }, @@ -99,7 +99,7 @@ func TestHandleAlertingWhenTriggeredAlertIsAlmostResolvedButServiceStartFailingA Debug: true, Alerting: &alerting.Config{ Custom: &custom.AlertProvider{ - URL: "https://twinnation.org/health", + URL: "https://twin.sh/health", Method: "GET", }, }, @@ -133,7 +133,7 @@ func TestHandleAlertingWhenTriggeredAlertIsResolvedButSendOnResolvedIsFalse(t *t Debug: true, Alerting: &alerting.Config{ Custom: &custom.AlertProvider{ - URL: "https://twinnation.org/health", + URL: "https://twin.sh/health", Method: "GET", }, }, @@ -202,7 +202,7 @@ func TestHandleAlertingWithProviderThatReturnsAnError(t *testing.T) { Debug: true, Alerting: &alerting.Config{ Custom: &custom.AlertProvider{ - URL: "https://twinnation.org/health", + URL: "https://twin.sh/health", Method: "GET", }, }, @@ -260,7 +260,7 @@ func TestHandleAlertingWithProviderThatOnlyReturnsErrorOnResolve(t *testing.T) { Debug: true, Alerting: &alerting.Config{ Custom: &custom.AlertProvider{ - URL: "https://twinnation.org/health", + URL: "https://twin.sh/health", Method: "GET", }, },