Skip to content

Commit f7f98d4

Browse files
authored
chore: improve IPAM logging (#3049)
Signed-off-by: Evan Baker <[email protected]>
1 parent 391dc3a commit f7f98d4

File tree

5 files changed

+43
-35
lines changed

5 files changed

+43
-35
lines changed

cns/ipampool/v2/monitor.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ func (pm *Monitor) reconcile(ctx context.Context) error {
124124
pm.z.Info("calculated new request", zap.Int64("demand", pm.demand), zap.Int64("batch", s.batch), zap.Int64("max", s.max), zap.Float64("buffer", s.buffer), zap.Int64("target", target))
125125
delta := target - pm.request
126126
if delta == 0 {
127+
pm.z.Info("NNC already at target IPs, no scaling required")
127128
return nil
128129
}
129130
pm.z.Info("scaling pool", zap.Int64("delta", delta))

cns/kubecontroller/pod/reconciler.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,11 @@ type limiter interface {
6161
// any events.
6262
// listeners are called with the new Pod list.
6363
func (p *watcher) NewNotifierFunc(listOpts *client.ListOptions, limiter limiter, listeners ...func([]v1.Pod)) reconcile.Func {
64-
p.z.Debug("adding notified for listeners", zap.Int("listeners", len(listeners)))
64+
p.z.Info("adding notifier for listeners", zap.Int("listeners", len(listeners)))
6565
return func(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
6666
if !limiter.Allow() {
6767
// rate limit exceeded, requeue
68-
p.z.Debug("rate limit exceeded")
68+
p.z.Info("rate limit exceeded")
6969
return ctrl.Result{Requeue: true}, nil
7070
}
7171
podList := &v1.PodList{}

cns/restserver/internalapi.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -563,7 +563,6 @@ func (service *HTTPRestService) CreateOrUpdateNetworkContainerInternal(req *cns.
563563
// If the NC was created successfully, log NC snapshot.
564564
if returnCode == 0 {
565565
logNCSnapshot(*req)
566-
567566
publishIPStateMetrics(service.buildIPState())
568567
} else {
569568
logger.Errorf(returnMessage)

cns/restserver/ipam.go

Lines changed: 39 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -196,10 +196,10 @@ func (service *HTTPRestService) updatePodInfoWithInterfaces(ctx context.Context,
196196

197197
// RequestIPConfigHandler requests an IPConfig from the CNS state
198198
func (service *HTTPRestService) RequestIPConfigHandler(w http.ResponseWriter, r *http.Request) {
199+
opName := "requestIPConfigHandler"
199200
var ipconfigRequest cns.IPConfigRequest
200201
err := common.Decode(w, r, &ipconfigRequest)
201-
operationName := "requestIPConfigHandler"
202-
logger.Request(service.Name+operationName, ipconfigRequest, err)
202+
logger.Request(opName, ipconfigRequest, err)
203203
if err != nil {
204204
return
205205
}
@@ -215,7 +215,7 @@ func (service *HTTPRestService) RequestIPConfigHandler(w http.ResponseWriter, r
215215
}
216216
w.Header().Set(cnsReturnCode, reserveResp.Response.ReturnCode.String())
217217
err = common.Encode(w, &reserveResp)
218-
logger.ResponseEx(service.Name+operationName, ipconfigRequest, reserveResp, reserveResp.Response.ReturnCode, err)
218+
logger.ResponseEx(opName, ipconfigRequest, reserveResp, reserveResp.Response.ReturnCode, err)
219219
return
220220
}
221221

@@ -240,7 +240,7 @@ func (service *HTTPRestService) RequestIPConfigHandler(w http.ResponseWriter, r
240240
}
241241
w.Header().Set(cnsReturnCode, reserveResp.Response.ReturnCode.String())
242242
err = common.Encode(w, &reserveResp)
243-
logger.ResponseEx(service.Name+operationName, ipconfigsRequest, reserveResp, reserveResp.Response.ReturnCode, err)
243+
logger.ResponseEx(opName, ipconfigsRequest, reserveResp, reserveResp.Response.ReturnCode, err)
244244
return
245245
}
246246

@@ -256,7 +256,7 @@ func (service *HTTPRestService) RequestIPConfigHandler(w http.ResponseWriter, r
256256
}
257257
w.Header().Set(cnsReturnCode, reserveResp.Response.ReturnCode.String())
258258
err = common.Encode(w, &reserveResp)
259-
logger.ResponseEx(service.Name+operationName, ipconfigRequest, reserveResp, reserveResp.Response.ReturnCode, err)
259+
logger.ResponseEx(opName, ipconfigRequest, reserveResp, reserveResp.Response.ReturnCode, err)
260260
return
261261
}
262262
// As this API is expected to return IPConfigResponse, generate it from the IPConfigsResponse returned above.
@@ -266,15 +266,15 @@ func (service *HTTPRestService) RequestIPConfigHandler(w http.ResponseWriter, r
266266
}
267267
w.Header().Set(cnsReturnCode, reserveResp.Response.ReturnCode.String())
268268
err = common.Encode(w, &reserveResp)
269-
logger.ResponseEx(service.Name+operationName, ipconfigsRequest, reserveResp, reserveResp.Response.ReturnCode, err)
269+
logger.ResponseEx(opName, ipconfigsRequest, reserveResp, reserveResp.Response.ReturnCode, err)
270270
}
271271

272272
// RequestIPConfigsHandler requests multiple IPConfigs from the CNS state
273273
func (service *HTTPRestService) RequestIPConfigsHandler(w http.ResponseWriter, r *http.Request) {
274+
opName := "requestIPConfigsHandler"
274275
var ipconfigsRequest cns.IPConfigsRequest
275276
err := common.Decode(w, r, &ipconfigsRequest)
276-
operationName := "requestIPConfigsHandler"
277-
logger.Request(service.Name+operationName, ipconfigsRequest, err)
277+
logger.Request(opName, ipconfigsRequest, err)
278278
if err != nil {
279279
return
280280
}
@@ -300,13 +300,13 @@ func (service *HTTPRestService) RequestIPConfigsHandler(w http.ResponseWriter, r
300300
if err != nil {
301301
w.Header().Set(cnsReturnCode, ipConfigsResp.Response.ReturnCode.String())
302302
err = common.Encode(w, &ipConfigsResp)
303-
logger.ResponseEx(service.Name+operationName, ipconfigsRequest, ipConfigsResp, ipConfigsResp.Response.ReturnCode, err)
303+
logger.ResponseEx(opName, ipconfigsRequest, ipConfigsResp, ipConfigsResp.Response.ReturnCode, err)
304304
return
305305
}
306306

307307
w.Header().Set(cnsReturnCode, ipConfigsResp.Response.ReturnCode.String())
308308
err = common.Encode(w, &ipConfigsResp)
309-
logger.ResponseEx(service.Name+operationName, ipconfigsRequest, ipConfigsResp, ipConfigsResp.Response.ReturnCode, err)
309+
logger.ResponseEx(opName, ipconfigsRequest, ipConfigsResp, ipConfigsResp.Response.ReturnCode, err)
310310
}
311311

312312
func (service *HTTPRestService) updateEndpointState(ipconfigsRequest cns.IPConfigsRequest, podInfo cns.PodInfo, podIPInfo []cns.PodIpInfo) error {
@@ -414,9 +414,10 @@ func (service *HTTPRestService) ReleaseIPConfigHandlerHelper(ctx context.Context
414414

415415
// ReleaseIPConfigHandler frees the IP assigned to a pod from CNS
416416
func (service *HTTPRestService) ReleaseIPConfigHandler(w http.ResponseWriter, r *http.Request) {
417+
opName := "releaseIPConfigHandler"
417418
var ipconfigRequest cns.IPConfigRequest
418419
err := common.Decode(w, r, &ipconfigRequest)
419-
logger.Request(service.Name+"releaseIPConfigHandler", ipconfigRequest, err)
420+
logger.Request(opName, ipconfigRequest, err)
420421
if err != nil {
421422
resp := cns.Response{
422423
ReturnCode: types.UnexpectedError,
@@ -425,7 +426,7 @@ func (service *HTTPRestService) ReleaseIPConfigHandler(w http.ResponseWriter, r
425426
logger.Errorf("releaseIPConfigHandler decode failed becase %v, release IP config info %s", resp.Message, ipconfigRequest)
426427
w.Header().Set(cnsReturnCode, resp.ReturnCode.String())
427428
err = common.Encode(w, &resp)
428-
logger.ResponseEx(service.Name, ipconfigRequest, resp, resp.ReturnCode, err)
429+
logger.ResponseEx(opName, ipconfigRequest, resp, resp.ReturnCode, err)
429430
return
430431
}
431432

@@ -439,7 +440,7 @@ func (service *HTTPRestService) ReleaseIPConfigHandler(w http.ResponseWriter, r
439440
}
440441
w.Header().Set(cnsReturnCode, reserveResp.Response.ReturnCode.String())
441442
err = common.Encode(w, &reserveResp)
442-
logger.ResponseEx(service.Name, ipconfigRequest, reserveResp, reserveResp.Response.ReturnCode, err)
443+
logger.ResponseEx(opName, ipconfigRequest, reserveResp, reserveResp.Response.ReturnCode, err)
443444
return
444445
}
445446

@@ -457,19 +458,20 @@ func (service *HTTPRestService) ReleaseIPConfigHandler(w http.ResponseWriter, r
457458
if err != nil {
458459
w.Header().Set(cnsReturnCode, resp.Response.ReturnCode.String())
459460
err = common.Encode(w, &resp)
460-
logger.ResponseEx(service.Name, ipconfigRequest, resp, resp.Response.ReturnCode, err)
461+
logger.ResponseEx(opName, ipconfigRequest, resp, resp.Response.ReturnCode, err)
461462
}
462463

463464
w.Header().Set(cnsReturnCode, resp.Response.ReturnCode.String())
464465
err = common.Encode(w, &resp)
465-
logger.ResponseEx(service.Name, ipconfigRequest, resp, resp.Response.ReturnCode, err)
466+
logger.ResponseEx(opName, ipconfigRequest, resp, resp.Response.ReturnCode, err)
466467
}
467468

468469
// ReleaseIPConfigsHandler frees multiple IPConfigs from the CNS state
469470
func (service *HTTPRestService) ReleaseIPConfigsHandler(w http.ResponseWriter, r *http.Request) {
471+
opName := "releaseIPConfigsHandler"
470472
var ipconfigsRequest cns.IPConfigsRequest
471473
err := common.Decode(w, r, &ipconfigsRequest)
472-
logger.Request(service.Name+"releaseIPConfigsHandler", ipconfigsRequest, err)
474+
logger.Request("releaseIPConfigsHandler", ipconfigsRequest, err)
473475
if err != nil {
474476
resp := cns.Response{
475477
ReturnCode: types.UnexpectedError,
@@ -478,20 +480,20 @@ func (service *HTTPRestService) ReleaseIPConfigsHandler(w http.ResponseWriter, r
478480
logger.Errorf("releaseIPConfigsHandler decode failed because %v, release IP config info %+v", resp.Message, ipconfigsRequest)
479481
w.Header().Set(cnsReturnCode, resp.ReturnCode.String())
480482
err = common.Encode(w, &resp)
481-
logger.ResponseEx(service.Name, ipconfigsRequest, resp, resp.ReturnCode, err)
483+
logger.ResponseEx(opName, ipconfigsRequest, resp, resp.ReturnCode, err)
482484
return
483485
}
484486

485487
resp, err := service.ReleaseIPConfigHandlerHelper(r.Context(), ipconfigsRequest)
486488
if err != nil {
487489
w.Header().Set(cnsReturnCode, resp.Response.ReturnCode.String())
488490
err = common.Encode(w, &resp)
489-
logger.ResponseEx(service.Name, ipconfigsRequest, resp, resp.Response.ReturnCode, err)
491+
logger.ResponseEx(opName, ipconfigsRequest, resp, resp.Response.ReturnCode, err)
490492
}
491493

492494
w.Header().Set(cnsReturnCode, resp.Response.ReturnCode.String())
493495
err = common.Encode(w, &resp)
494-
logger.ResponseEx(service.Name, ipconfigsRequest, resp, resp.Response.ReturnCode, err)
496+
logger.ResponseEx(opName, ipconfigsRequest, resp, resp.Response.ReturnCode, err)
495497
}
496498

497499
func (service *HTTPRestService) removeEndpointState(podInfo cns.PodInfo) error {
@@ -672,16 +674,18 @@ func (service *HTTPRestService) GetPodIPConfigState() map[string]cns.IPConfigura
672674
}
673675

674676
func (service *HTTPRestService) HandleDebugPodContext(w http.ResponseWriter, r *http.Request) { //nolint
677+
opName := "handleDebugPodContext"
675678
service.RLock()
676679
defer service.RUnlock()
677680
resp := cns.GetPodContextResponse{
678681
PodContext: service.PodIPIDByPodInterfaceKey,
679682
}
680683
err := common.Encode(w, &resp)
681-
logger.Response(service.Name, resp, resp.Response.ReturnCode, err)
684+
logger.Response(opName, resp, resp.Response.ReturnCode, err)
682685
}
683686

684687
func (service *HTTPRestService) HandleDebugRestData(w http.ResponseWriter, r *http.Request) { //nolint
688+
opName := "handleDebugRestData"
685689
service.RLock()
686690
defer service.RUnlock()
687691
resp := GetHTTPServiceDataResponse{
@@ -691,10 +695,11 @@ func (service *HTTPRestService) HandleDebugRestData(w http.ResponseWriter, r *ht
691695
},
692696
}
693697
err := common.Encode(w, &resp)
694-
logger.Response(service.Name, resp, resp.Response.ReturnCode, err)
698+
logger.Response(opName, resp, resp.Response.ReturnCode, err)
695699
}
696700

697701
func (service *HTTPRestService) HandleDebugIPAddresses(w http.ResponseWriter, r *http.Request) {
702+
opName := "handleDebugIPAddresses"
698703
var req cns.GetIPAddressesRequest
699704
if err := common.Decode(w, r, &req); err != nil {
700705
resp := cns.GetIPAddressStatusResponse{
@@ -704,15 +709,15 @@ func (service *HTTPRestService) HandleDebugIPAddresses(w http.ResponseWriter, r
704709
},
705710
}
706711
err = common.Encode(w, &resp)
707-
logger.ResponseEx(service.Name, req, resp, resp.Response.ReturnCode, err)
712+
logger.ResponseEx(opName, req, resp, resp.Response.ReturnCode, err)
708713
return
709714
}
710715
// Get all IPConfigs matching a state and return in the response
711716
resp := cns.GetIPAddressStatusResponse{
712717
IPConfigurationStatus: filter.MatchAnyIPConfigState(service.PodIPConfigState, filter.PredicatesForStates(req.IPConfigStateFilter...)...),
713718
}
714719
err := common.Encode(w, &resp)
715-
logger.ResponseEx(service.Name, req, resp, resp.Response.ReturnCode, err)
720+
logger.ResponseEx(opName, req, resp, resp.Response.ReturnCode, err)
716721
}
717722

718723
// GetAssignedIPConfigs returns a filtered list of IPs which are in
@@ -1093,6 +1098,7 @@ func validateDesiredIPAddresses(desiredIPs []string) error {
10931098

10941099
// EndpointHandlerAPI forwards the endpoint related APIs to GetEndpointHandler or UpdateEndpointHandler based on the http method
10951100
func (service *HTTPRestService) EndpointHandlerAPI(w http.ResponseWriter, r *http.Request) {
1101+
opName := "endpointHandler"
10961102
logger.Printf("[EndpointHandlerAPI] EndpointHandlerAPI received request with http Method %s", r.Method)
10971103
service.Lock()
10981104
defer service.Unlock()
@@ -1103,7 +1109,7 @@ func (service *HTTPRestService) EndpointHandlerAPI(w http.ResponseWriter, r *htt
11031109
Message: fmt.Sprintf("[EndpointHandlerAPI] EndpointHandlerAPI failed with error: %s", ErrOptManageEndpointState),
11041110
}
11051111
err := common.Encode(w, &response)
1106-
logger.Response(service.Name, response, response.ReturnCode, err)
1112+
logger.Response(opName, response, response.ReturnCode, err)
11071113
return
11081114
}
11091115
switch r.Method {
@@ -1118,6 +1124,7 @@ func (service *HTTPRestService) EndpointHandlerAPI(w http.ResponseWriter, r *htt
11181124

11191125
// GetEndpointHandler handles the incoming GetEndpoint requests with http Get method
11201126
func (service *HTTPRestService) GetEndpointHandler(w http.ResponseWriter, r *http.Request) {
1127+
opName := "getEndpointState"
11211128
logger.Printf("[GetEndpointState] GetEndpoint for %s", r.URL.Path)
11221129
endpointID := strings.TrimPrefix(r.URL.Path, cns.EndpointPath)
11231130
endpointInfo, err := service.GetEndpointHelper(endpointID)
@@ -1139,7 +1146,7 @@ func (service *HTTPRestService) GetEndpointHandler(w http.ResponseWriter, r *htt
11391146
}
11401147
w.Header().Set(cnsReturnCode, response.Response.ReturnCode.String())
11411148
err = common.Encode(w, &response)
1142-
logger.Response(service.Name, response, response.Response.ReturnCode, err)
1149+
logger.Response(opName, response, response.Response.ReturnCode, err)
11431150
return
11441151
}
11451152
response := GetEndpointResponse{
@@ -1151,7 +1158,7 @@ func (service *HTTPRestService) GetEndpointHandler(w http.ResponseWriter, r *htt
11511158
}
11521159
w.Header().Set(cnsReturnCode, response.Response.ReturnCode.String())
11531160
err = common.Encode(w, &response)
1154-
logger.Response(service.Name, response, response.Response.ReturnCode, err)
1161+
logger.Response(opName, response, response.Response.ReturnCode, err)
11551162
}
11561163

11571164
// GetEndpointHelper returns the state of the given endpointId
@@ -1192,12 +1199,13 @@ func (service *HTTPRestService) GetEndpointHelper(endpointID string) (*EndpointI
11921199

11931200
// UpdateEndpointHandler handles the incoming UpdateEndpoint requests with http Patch method
11941201
func (service *HTTPRestService) UpdateEndpointHandler(w http.ResponseWriter, r *http.Request) {
1202+
opName := "UpdateEndpointHandler"
11951203
logger.Printf("[updateEndpoint] updateEndpoint for %s", r.URL.Path)
11961204

11971205
var req map[string]*IPInfo
11981206
err := common.Decode(w, r, &req)
11991207
endpointID := strings.TrimPrefix(r.URL.Path, cns.EndpointPath)
1200-
logger.Request(service.Name, &req, err)
1208+
logger.Request(opName, &req, err)
12011209
// Check if the request is valid
12021210
if err != nil {
12031211
response := cns.Response{
@@ -1206,7 +1214,7 @@ func (service *HTTPRestService) UpdateEndpointHandler(w http.ResponseWriter, r *
12061214
}
12071215
w.Header().Set(cnsReturnCode, response.ReturnCode.String())
12081216
err = common.Encode(w, &response)
1209-
logger.Response(service.Name, response, response.ReturnCode, err)
1217+
logger.Response(opName, response, response.ReturnCode, err)
12101218
return
12111219
}
12121220
if err = verifyUpdateEndpointStateRequest(req); err != nil {
@@ -1216,7 +1224,7 @@ func (service *HTTPRestService) UpdateEndpointHandler(w http.ResponseWriter, r *
12161224
}
12171225
w.Header().Set(cnsReturnCode, response.ReturnCode.String())
12181226
err = common.Encode(w, &response)
1219-
logger.Response(service.Name, response, response.ReturnCode, err)
1227+
logger.Response(opName, response, response.ReturnCode, err)
12201228
return
12211229
}
12221230
// Update the endpoint state
@@ -1228,7 +1236,7 @@ func (service *HTTPRestService) UpdateEndpointHandler(w http.ResponseWriter, r *
12281236
}
12291237
w.Header().Set(cnsReturnCode, response.ReturnCode.String())
12301238
err = common.Encode(w, &response)
1231-
logger.Response(service.Name, response, response.ReturnCode, err)
1239+
logger.Response(opName, response, response.ReturnCode, err)
12321240
return
12331241
}
12341242
response := cns.Response{
@@ -1237,7 +1245,7 @@ func (service *HTTPRestService) UpdateEndpointHandler(w http.ResponseWriter, r *
12371245
}
12381246
w.Header().Set(cnsReturnCode, response.ReturnCode.String())
12391247
err = common.Encode(w, &response)
1240-
logger.Response(service.Name, response, response.ReturnCode, err)
1248+
logger.Response(opName, response, response.ReturnCode, err)
12411249
}
12421250

12431251
// UpdateEndpointHelper updates the state of the given endpointId with HNSId, VethName or other InterfaceInfo fields

cns/restserver/metrics.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ func stateTransitionMiddleware(i *cns.IPConfigurationStatus, s types.IPState) {
143143
}
144144

145145
func publishIPStateMetrics(state *ipState) {
146-
labels := []string{} // TODO. ragasthya Add dimensions to the IP Usage metrics.
146+
labels := []string{}
147147
allocatedIPCount.WithLabelValues(labels...).Set(float64(state.allocatedIPs))
148148
assignedIPCount.WithLabelValues(labels...).Set(float64(state.assignedIPs))
149149
availableIPCount.WithLabelValues(labels...).Set(float64(state.availableIPs))

0 commit comments

Comments
 (0)