@@ -16,14 +16,13 @@ package v2
1616import (
1717 "errors"
1818 "fmt"
19+ "log/slog"
1920 "net/http"
2021 "regexp"
2122 "sort"
2223 "sync"
2324 "time"
2425
25- "github.com/go-kit/log"
26- "github.com/go-kit/log/level"
2726 "github.com/go-openapi/analysis"
2827 "github.com/go-openapi/loads"
2928 "github.com/go-openapi/runtime/middleware"
@@ -71,7 +70,7 @@ type API struct {
7170 route * dispatch.Route
7271 setAlertStatus setAlertStatusFn
7372
74- logger log .Logger
73+ logger * slog .Logger
7574 m * metrics.Alerts
7675
7776 Handler http.Handler
@@ -92,7 +91,7 @@ func NewAPI(
9291 gmf groupMutedFunc ,
9392 silences * silence.Silences ,
9493 peer cluster.ClusterPeer ,
95- l log .Logger ,
94+ l * slog .Logger ,
9695 r prometheus.Registerer ,
9796) (* API , error ) {
9897 api := API {
@@ -154,8 +153,8 @@ func setResponseHeaders(h http.Handler) http.Handler {
154153 })
155154}
156155
157- func (api * API ) requestLogger (req * http.Request ) log .Logger {
158- return log . With ( api .logger , "path" , req .URL .Path , "method" , req .Method )
156+ func (api * API ) requestLogger (req * http.Request ) * slog .Logger {
157+ return api .logger . With ( "path" , req .URL .Path , "method" , req .Method )
159158}
160159
161160// Update sets the API struct members that may change between reloads of alertmanager.
@@ -249,14 +248,14 @@ func (api *API) getAlertsHandler(params alert_ops.GetAlertsParams) middleware.Re
249248
250249 matchers , err := parseFilter (params .Filter )
251250 if err != nil {
252- level .Debug (logger ). Log ( "msg" , "Failed to parse matchers" , "err" , err )
251+ logger .Debug ("Failed to parse matchers" , "err" , err )
253252 return alertgroup_ops .NewGetAlertGroupsBadRequest ().WithPayload (err .Error ())
254253 }
255254
256255 if params .Receiver != nil {
257256 receiverFilter , err = regexp .Compile ("^(?:" + * params .Receiver + ")$" )
258257 if err != nil {
259- level .Debug (logger ). Log ( "msg" , "Failed to compile receiver regex" , "err" , err )
258+ logger .Debug ("Failed to compile receiver regex" , "err" , err )
260259 return alert_ops .
261260 NewGetAlertsBadRequest ().
262261 WithPayload (
@@ -301,7 +300,7 @@ func (api *API) getAlertsHandler(params alert_ops.GetAlertsParams) middleware.Re
301300 api .mtx .RUnlock ()
302301
303302 if err != nil {
304- level .Error (logger ). Log ( "msg" , "Failed to get alerts" , "err" , err )
303+ logger .Error ("Failed to get alerts" , "err" , err )
305304 return alert_ops .NewGetAlertsInternalServerError ().WithPayload (err .Error ())
306305 }
307306 sort .Slice (res , func (i , j int ) bool {
@@ -361,12 +360,12 @@ func (api *API) postAlertsHandler(params alert_ops.PostAlertsParams) middleware.
361360 validAlerts = append (validAlerts , a )
362361 }
363362 if err := api .alerts .Put (validAlerts ... ); err != nil {
364- level .Error (logger ). Log ( "msg" , "Failed to create alerts" , "err" , err )
363+ logger .Error ("Failed to create alerts" , "err" , err )
365364 return alert_ops .NewPostAlertsInternalServerError ().WithPayload (err .Error ())
366365 }
367366
368367 if validationErrs .Len () > 0 {
369- level .Error (logger ). Log ( "msg" , "Failed to validate alerts" , "err" , validationErrs .Error ())
368+ logger .Error ("Failed to validate alerts" , "err" , validationErrs .Error ())
370369 return alert_ops .NewPostAlertsBadRequest ().WithPayload (validationErrs .Error ())
371370 }
372371
@@ -378,15 +377,15 @@ func (api *API) getAlertGroupsHandler(params alertgroup_ops.GetAlertGroupsParams
378377
379378 matchers , err := parseFilter (params .Filter )
380379 if err != nil {
381- level .Debug (logger ). Log ( "msg" , "Failed to parse matchers" , "err" , err )
380+ logger .Debug ("Failed to parse matchers" , "err" , err )
382381 return alertgroup_ops .NewGetAlertGroupsBadRequest ().WithPayload (err .Error ())
383382 }
384383
385384 var receiverFilter * regexp.Regexp
386385 if params .Receiver != nil {
387386 receiverFilter , err = regexp .Compile ("^(?:" + * params .Receiver + ")$" )
388387 if err != nil {
389- level .Error (logger ). Log ( "msg" , "Failed to compile receiver regex" , "err" , err )
388+ logger .Error ("Failed to compile receiver regex" , "err" , err )
390389 return alertgroup_ops .
391390 NewGetAlertGroupsBadRequest ().
392391 WithPayload (
@@ -518,13 +517,13 @@ func (api *API) getSilencesHandler(params silence_ops.GetSilencesParams) middlew
518517
519518 matchers , err := parseFilter (params .Filter )
520519 if err != nil {
521- level .Debug (logger ). Log ( "msg" , "Failed to parse matchers" , "err" , err )
520+ logger .Debug ("Failed to parse matchers" , "err" , err )
522521 return silence_ops .NewGetSilencesBadRequest ().WithPayload (err .Error ())
523522 }
524523
525524 psils , _ , err := api .silences .Query ()
526525 if err != nil {
527- level .Error (logger ). Log ( "msg" , "Failed to get silences" , "err" , err )
526+ logger .Error ("Failed to get silences" , "err" , err )
528527 return silence_ops .NewGetSilencesInternalServerError ().WithPayload (err .Error ())
529528 }
530529
@@ -535,7 +534,7 @@ func (api *API) getSilencesHandler(params silence_ops.GetSilencesParams) middlew
535534 }
536535 silence , err := GettableSilenceFromProto (ps )
537536 if err != nil {
538- level .Error (logger ). Log ( "msg" , "Failed to unmarshal silence from proto" , "err" , err )
537+ logger .Error ("Failed to unmarshal silence from proto" , "err" , err )
539538 return silence_ops .NewGetSilencesInternalServerError ().WithPayload (err .Error ())
540539 }
541540 sils = append (sils , & silence )
@@ -614,18 +613,18 @@ func (api *API) getSilenceHandler(params silence_ops.GetSilenceParams) middlewar
614613
615614 sils , _ , err := api .silences .Query (silence .QIDs (params .SilenceID .String ()))
616615 if err != nil {
617- level .Error (logger ). Log ( "msg" , "Failed to get silence by id" , "err" , err , "id" , params .SilenceID .String ())
616+ logger .Error ("Failed to get silence by id" , "err" , err , "id" , params .SilenceID .String ())
618617 return silence_ops .NewGetSilenceInternalServerError ().WithPayload (err .Error ())
619618 }
620619
621620 if len (sils ) == 0 {
622- level .Error (logger ). Log ( "msg" , "Failed to find silence" , "err" , err , "id" , params .SilenceID .String ())
621+ logger .Error ("Failed to find silence" , "err" , err , "id" , params .SilenceID .String ())
623622 return silence_ops .NewGetSilenceNotFound ()
624623 }
625624
626625 sil , err := GettableSilenceFromProto (sils [0 ])
627626 if err != nil {
628- level .Error (logger ). Log ( "msg" , "Failed to convert unmarshal from proto" , "err" , err )
627+ logger .Error ("Failed to convert unmarshal from proto" , "err" , err )
629628 return silence_ops .NewGetSilenceInternalServerError ().WithPayload (err .Error ())
630629 }
631630
@@ -637,7 +636,7 @@ func (api *API) deleteSilenceHandler(params silence_ops.DeleteSilenceParams) mid
637636
638637 sid := params .SilenceID .String ()
639638 if err := api .silences .Expire (sid ); err != nil {
640- level .Error (logger ). Log ( "msg" , "Failed to expire silence" , "err" , err )
639+ logger .Error ("Failed to expire silence" , "err" , err )
641640 if errors .Is (err , silence .ErrNotFound ) {
642641 return silence_ops .NewDeleteSilenceNotFound ()
643642 }
@@ -651,26 +650,26 @@ func (api *API) postSilencesHandler(params silence_ops.PostSilencesParams) middl
651650
652651 sil , err := PostableSilenceToProto (params .Silence )
653652 if err != nil {
654- level .Error (logger ). Log ( "msg" , "Failed to marshal silence to proto" , "err" , err )
653+ logger .Error ("Failed to marshal silence to proto" , "err" , err )
655654 return silence_ops .NewPostSilencesBadRequest ().WithPayload (
656655 fmt .Sprintf ("failed to convert API silence to internal silence: %v" , err .Error ()),
657656 )
658657 }
659658
660659 if sil .StartsAt .After (sil .EndsAt ) || sil .StartsAt .Equal (sil .EndsAt ) {
661660 msg := "Failed to create silence: start time must be before end time"
662- level .Error (logger ). Log ( "msg" , msg , "starts_at" , sil .StartsAt , "ends_at" , sil .EndsAt )
661+ logger .Error (msg , "starts_at" , sil .StartsAt , "ends_at" , sil .EndsAt )
663662 return silence_ops .NewPostSilencesBadRequest ().WithPayload (msg )
664663 }
665664
666665 if sil .EndsAt .Before (time .Now ()) {
667666 msg := "Failed to create silence: end time can't be in the past"
668- level .Error (logger ). Log ( "msg" , msg , "ends_at" , sil .EndsAt )
667+ logger .Error (msg , "ends_at" , sil .EndsAt )
669668 return silence_ops .NewPostSilencesBadRequest ().WithPayload (msg )
670669 }
671670
672671 if err = api .silences .Set (sil ); err != nil {
673- level .Error (logger ). Log ( "msg" , "Failed to create silence" , "err" , err )
672+ logger .Error ("Failed to create silence" , "err" , err )
674673 if errors .Is (err , silence .ErrNotFound ) {
675674 return silence_ops .NewPostSilencesNotFound ().WithPayload (err .Error ())
676675 }
0 commit comments