mirror of
https://github.com/TwiN/gatus.git
synced 2025-03-27 16:16:10 +01:00
Changed badge path to leverage ServiceStatus.Key
This commit is contained in:
parent
dcbbec7931
commit
99e8cfb1ce
10
README.md
10
README.md
@ -58,7 +58,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 and Twilio 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.
|
||||
- **GitHub uptime badges** (ALPHA):   
|
||||
- **GitHub uptime badges** (ALPHA):   
|
||||
- **Service auto discovery in Kubernetes** (ALPHA)
|
||||
|
||||
|
||||
@ -708,9 +708,9 @@ web:
|
||||
```
|
||||
|
||||
### Uptime badges
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
> **NOTE**: This feature is currently in ALPHA
|
||||
|
||||
@ -737,7 +737,7 @@ If you want to display a service that is not part of a group, you must leave the
|
||||
http://example.com/api/v1/badges/uptime/7d/group--service-frontend.svg
|
||||
```
|
||||
|
||||
Example: 
|
||||
Example: 
|
||||
```
|
||||

|
||||
```
|
||||
|
@ -14,26 +14,18 @@ import (
|
||||
// badgeHandler handles the automatic generation of badge based on the group name and service name passed.
|
||||
//
|
||||
// Valid values for {duration}: 7d, 24h, 1h
|
||||
// Pattern for {identifier}: group-<GROUP_NAME>-service-<SERVICE_NAME>.svg
|
||||
// Pattern for {identifier}: <KEY>.svg
|
||||
func badgeHandler(writer http.ResponseWriter, request *http.Request) {
|
||||
variables := mux.Vars(request)
|
||||
duration := variables["duration"]
|
||||
// group-<GROUP_NAME>-service-<SERVICE_NAME>.svg
|
||||
identifier := variables["identifier"]
|
||||
if duration != "7d" && duration != "24h" && duration != "1h" {
|
||||
writer.WriteHeader(http.StatusBadRequest)
|
||||
_, _ = writer.Write([]byte("Durations supported: 7d, 24h, 1h"))
|
||||
return
|
||||
}
|
||||
parts := strings.Split(identifier, "-service-")
|
||||
if len(parts) != 2 || !strings.HasPrefix(identifier, "group-") || !strings.HasSuffix(identifier, ".svg") {
|
||||
writer.WriteHeader(http.StatusBadRequest)
|
||||
_, _ = writer.Write([]byte("Invalid path: Pattern should look like /group-<GROUP_NAME>-service-<SERVICE_NAME>.svg"))
|
||||
return
|
||||
}
|
||||
groupName := strings.TrimPrefix(parts[0], "group-")
|
||||
serviceName := strings.TrimSuffix(parts[1], ".svg")
|
||||
uptime := watchdog.GetUptimeByServiceGroupAndName(groupName, serviceName)
|
||||
identifier := variables["identifier"]
|
||||
key := strings.TrimSuffix(identifier, ".svg")
|
||||
uptime := watchdog.GetUptimeByKey(key)
|
||||
if uptime == nil {
|
||||
writer.WriteHeader(http.StatusNotFound)
|
||||
_, _ = writer.Write([]byte("Requested service not found"))
|
||||
|
Loading…
Reference in New Issue
Block a user