fix: linter run and gosec fix
Some checks failed
build / build (push) Failing after 1m52s

This commit is contained in:
d3m0k1d
2026-02-22 19:45:59 +03:00
parent 3ac1250bfc
commit 3acd0b899c
3 changed files with 23 additions and 23 deletions

View File

@@ -3,13 +3,14 @@ package config
import ( import (
"errors" "errors"
"fmt" "fmt"
"github.com/BurntSushi/toml"
"github.com/d3m0k1d/BanForge/internal/logger"
"github.com/d3m0k1d/BanForge/internal/metrics"
"os" "os"
"strconv" "strconv"
"strings" "strings"
"time" "time"
"github.com/BurntSushi/toml"
"github.com/d3m0k1d/BanForge/internal/logger"
"github.com/d3m0k1d/BanForge/internal/metrics"
) )
func LoadMetricsConfig() (*Metrics, error) { func LoadMetricsConfig() (*Metrics, error) {

View File

@@ -2,8 +2,10 @@ package metrics
import ( import (
"fmt" "fmt"
"log"
"net/http" "net/http"
"sync" "sync"
"time"
) )
var ( var (
@@ -39,7 +41,6 @@ func IncLogParsed() {
func MetricsHandler() http.Handler { func MetricsHandler() http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
metricsMu.RLock() metricsMu.RLock()
snapshot := make(map[string]int64, len(metrics)) snapshot := make(map[string]int64, len(metrics))
for k, v := range metrics { for k, v := range metrics {
@@ -51,15 +52,27 @@ func MetricsHandler() http.Handler {
for name, value := range snapshot { for name, value := range snapshot {
metricName := name + "_total" metricName := name + "_total"
fmt.Fprintf(w, "# TYPE %s counter\n", metricName) _, _ = fmt.Fprintf(w, "# TYPE %s counter\n", metricName)
fmt.Fprintf(w, "%s %d\n", metricName, value) _, _ = fmt.Fprintf(w, "%s %d\n", metricName, value)
} }
}) })
} }
func StartMetricsServer(port int) { func StartMetricsServer(port int) {
http.Handle("/metrics", MetricsHandler()) mux := http.NewServeMux()
addr := fmt.Sprintf(":%d", port) mux.Handle("/metrics", MetricsHandler())
if err := http.ListenAndServe(addr, nil); err != nil {
server := &http.Server{
Addr: fmt.Sprintf(":%d", port),
Handler: mux,
ReadTimeout: 5 * time.Second,
WriteTimeout: 10 * time.Second,
IdleTimeout: 15 * time.Second,
}
log.Printf("Starting metrics server on %s", server.Addr)
if err := server.ListenAndServe(); err != nil && err != http.ErrServerClosed {
log.Printf("Metrics server error: %v", err)
} }
} }

View File

@@ -1,14 +0,0 @@
package metrics
import (
"net/http"
)
func Handler() http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "text/plain")
for k, v := range metrics {
w.Write([]byte(k + " " + string(v) + "\n"))
}
})
}