32 lignes
648 o
Go
32 lignes
648 o
Go
package controllers
|
|
|
|
import (
|
|
"fmt"
|
|
"net/http"
|
|
|
|
"github.com/hbjydev/mangadex-next/database"
|
|
)
|
|
|
|
type HealthController struct{}
|
|
|
|
func (h *HealthController) Healthy(w http.ResponseWriter, r *http.Request) {
|
|
w.WriteHeader(http.StatusOK)
|
|
}
|
|
|
|
func (h *HealthController) Metrics(w http.ResponseWriter, r *http.Request) {
|
|
var output string
|
|
|
|
output += fmt.Sprintf("mangadex_item_count{type=\"user\"} %v\n", countUsers())
|
|
|
|
w.Write([]byte(output))
|
|
w.WriteHeader(http.StatusOK)
|
|
}
|
|
|
|
func countUsers() int {
|
|
row := database.DB.QueryRow("SELECT count(id) FROM users")
|
|
var count int
|
|
if err := row.Scan(&count); err != nil {
|
|
return -1
|
|
}
|
|
return count
|
|
}
|