@@ -16,14 +16,13 @@ package v2
16
16
import (
17
17
"errors"
18
18
"fmt"
19
+ "log/slog"
19
20
"net/http"
20
21
"regexp"
21
22
"sort"
22
23
"sync"
23
24
"time"
24
25
25
- "github.com/go-kit/log"
26
- "github.com/go-kit/log/level"
27
26
"github.com/go-openapi/analysis"
28
27
"github.com/go-openapi/loads"
29
28
"github.com/go-openapi/runtime/middleware"
@@ -71,7 +70,7 @@ type API struct {
71
70
route * dispatch.Route
72
71
setAlertStatus setAlertStatusFn
73
72
74
- logger log .Logger
73
+ logger * slog .Logger
75
74
m * metrics.Alerts
76
75
77
76
Handler http.Handler
@@ -92,7 +91,7 @@ func NewAPI(
92
91
gmf groupMutedFunc ,
93
92
silences * silence.Silences ,
94
93
peer cluster.ClusterPeer ,
95
- l log .Logger ,
94
+ l * slog .Logger ,
96
95
r prometheus.Registerer ,
97
96
) (* API , error ) {
98
97
api := API {
@@ -154,8 +153,8 @@ func setResponseHeaders(h http.Handler) http.Handler {
154
153
})
155
154
}
156
155
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 )
159
158
}
160
159
161
160
// 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
249
248
250
249
matchers , err := parseFilter (params .Filter )
251
250
if err != nil {
252
- level .Debug (logger ). Log ( "msg" , "Failed to parse matchers" , "err" , err )
251
+ logger .Debug ("Failed to parse matchers" , "err" , err )
253
252
return alertgroup_ops .NewGetAlertGroupsBadRequest ().WithPayload (err .Error ())
254
253
}
255
254
256
255
if params .Receiver != nil {
257
256
receiverFilter , err = regexp .Compile ("^(?:" + * params .Receiver + ")$" )
258
257
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 )
260
259
return alert_ops .
261
260
NewGetAlertsBadRequest ().
262
261
WithPayload (
@@ -301,7 +300,7 @@ func (api *API) getAlertsHandler(params alert_ops.GetAlertsParams) middleware.Re
301
300
api .mtx .RUnlock ()
302
301
303
302
if err != nil {
304
- level .Error (logger ). Log ( "msg" , "Failed to get alerts" , "err" , err )
303
+ logger .Error ("Failed to get alerts" , "err" , err )
305
304
return alert_ops .NewGetAlertsInternalServerError ().WithPayload (err .Error ())
306
305
}
307
306
sort .Slice (res , func (i , j int ) bool {
@@ -361,12 +360,12 @@ func (api *API) postAlertsHandler(params alert_ops.PostAlertsParams) middleware.
361
360
validAlerts = append (validAlerts , a )
362
361
}
363
362
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 )
365
364
return alert_ops .NewPostAlertsInternalServerError ().WithPayload (err .Error ())
366
365
}
367
366
368
367
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 ())
370
369
return alert_ops .NewPostAlertsBadRequest ().WithPayload (validationErrs .Error ())
371
370
}
372
371
@@ -378,15 +377,15 @@ func (api *API) getAlertGroupsHandler(params alertgroup_ops.GetAlertGroupsParams
378
377
379
378
matchers , err := parseFilter (params .Filter )
380
379
if err != nil {
381
- level .Debug (logger ). Log ( "msg" , "Failed to parse matchers" , "err" , err )
380
+ logger .Debug ("Failed to parse matchers" , "err" , err )
382
381
return alertgroup_ops .NewGetAlertGroupsBadRequest ().WithPayload (err .Error ())
383
382
}
384
383
385
384
var receiverFilter * regexp.Regexp
386
385
if params .Receiver != nil {
387
386
receiverFilter , err = regexp .Compile ("^(?:" + * params .Receiver + ")$" )
388
387
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 )
390
389
return alertgroup_ops .
391
390
NewGetAlertGroupsBadRequest ().
392
391
WithPayload (
@@ -518,13 +517,13 @@ func (api *API) getSilencesHandler(params silence_ops.GetSilencesParams) middlew
518
517
519
518
matchers , err := parseFilter (params .Filter )
520
519
if err != nil {
521
- level .Debug (logger ). Log ( "msg" , "Failed to parse matchers" , "err" , err )
520
+ logger .Debug ("Failed to parse matchers" , "err" , err )
522
521
return silence_ops .NewGetSilencesBadRequest ().WithPayload (err .Error ())
523
522
}
524
523
525
524
psils , _ , err := api .silences .Query ()
526
525
if err != nil {
527
- level .Error (logger ). Log ( "msg" , "Failed to get silences" , "err" , err )
526
+ logger .Error ("Failed to get silences" , "err" , err )
528
527
return silence_ops .NewGetSilencesInternalServerError ().WithPayload (err .Error ())
529
528
}
530
529
@@ -535,7 +534,7 @@ func (api *API) getSilencesHandler(params silence_ops.GetSilencesParams) middlew
535
534
}
536
535
silence , err := GettableSilenceFromProto (ps )
537
536
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 )
539
538
return silence_ops .NewGetSilencesInternalServerError ().WithPayload (err .Error ())
540
539
}
541
540
sils = append (sils , & silence )
@@ -614,18 +613,18 @@ func (api *API) getSilenceHandler(params silence_ops.GetSilenceParams) middlewar
614
613
615
614
sils , _ , err := api .silences .Query (silence .QIDs (params .SilenceID .String ()))
616
615
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 ())
618
617
return silence_ops .NewGetSilenceInternalServerError ().WithPayload (err .Error ())
619
618
}
620
619
621
620
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 ())
623
622
return silence_ops .NewGetSilenceNotFound ()
624
623
}
625
624
626
625
sil , err := GettableSilenceFromProto (sils [0 ])
627
626
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 )
629
628
return silence_ops .NewGetSilenceInternalServerError ().WithPayload (err .Error ())
630
629
}
631
630
@@ -637,7 +636,7 @@ func (api *API) deleteSilenceHandler(params silence_ops.DeleteSilenceParams) mid
637
636
638
637
sid := params .SilenceID .String ()
639
638
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 )
641
640
if errors .Is (err , silence .ErrNotFound ) {
642
641
return silence_ops .NewDeleteSilenceNotFound ()
643
642
}
@@ -651,26 +650,26 @@ func (api *API) postSilencesHandler(params silence_ops.PostSilencesParams) middl
651
650
652
651
sil , err := PostableSilenceToProto (params .Silence )
653
652
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 )
655
654
return silence_ops .NewPostSilencesBadRequest ().WithPayload (
656
655
fmt .Sprintf ("failed to convert API silence to internal silence: %v" , err .Error ()),
657
656
)
658
657
}
659
658
660
659
if sil .StartsAt .After (sil .EndsAt ) || sil .StartsAt .Equal (sil .EndsAt ) {
661
660
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 )
663
662
return silence_ops .NewPostSilencesBadRequest ().WithPayload (msg )
664
663
}
665
664
666
665
if sil .EndsAt .Before (time .Now ()) {
667
666
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 )
669
668
return silence_ops .NewPostSilencesBadRequest ().WithPayload (msg )
670
669
}
671
670
672
671
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 )
674
673
if errors .Is (err , silence .ErrNotFound ) {
675
674
return silence_ops .NewPostSilencesNotFound ().WithPayload (err .Error ())
676
675
}
0 commit comments