From 22b031beaa3393f8f02812242a9f637ce525b4eb Mon Sep 17 00:00:00 2001 From: Aaron U'Ren Date: Sat, 27 Feb 2021 09:54:49 -0600 Subject: [PATCH] feat(metrics): add more iptables sync metrics --- pkg/controllers/netpol/network_policy_controller.go | 4 ++++ pkg/metrics/metrics_controller.go | 12 ++++++++++++ 2 files changed, 16 insertions(+) diff --git a/pkg/controllers/netpol/network_policy_controller.go b/pkg/controllers/netpol/network_policy_controller.go index 01ab0b40..9202f5cc 100644 --- a/pkg/controllers/netpol/network_policy_controller.go +++ b/pkg/controllers/netpol/network_policy_controller.go @@ -208,6 +208,8 @@ func (npc *NetworkPolicyController) fullPolicySync() { endTime := time.Since(start) if npc.MetricsEnabled { metrics.ControllerIptablesSyncTime.Observe(endTime.Seconds()) + metrics.ControllerIptablesSyncTotalTime.Add(endTime.Seconds()) + metrics.ControllerIptablesSyncTotalCount.Add(1) } glog.V(1).Infof("sync iptables took %v", endTime) }() @@ -633,6 +635,8 @@ func NewNetworkPolicyController(clientset kubernetes.Interface, //Register the metrics for this controller prometheus.MustRegister(metrics.ControllerIptablesSyncTime) prometheus.MustRegister(metrics.ControllerPolicyChainsSyncTime) + prometheus.MustRegister(metrics.ControllerIptablesSyncTotalTime) + prometheus.MustRegister(metrics.ControllerIptablesSyncTotalCount) npc.MetricsEnabled = true } diff --git a/pkg/metrics/metrics_controller.go b/pkg/metrics/metrics_controller.go index bcc986d1..a6a414e2 100644 --- a/pkg/metrics/metrics_controller.go +++ b/pkg/metrics/metrics_controller.go @@ -100,6 +100,18 @@ var ( Name: "controller_iptables_sync_time", Help: "Time it took for controller to sync iptables", }) + // ControllerIptablesSyncTotalTime Time it took for controller to sync iptables + ControllerIptablesSyncTotalTime = prometheus.NewCounter(prometheus.CounterOpts{ + Namespace: namespace, + Name: "controller_iptables_sync_total_time", + Help: "Time it took for controller to sync iptables as a counter", + }) + // ControllerIptablesSyncTotalCount Number of times the controller synced iptables for individual pods + ControllerIptablesSyncTotalCount = prometheus.NewCounter(prometheus.CounterOpts{ + Namespace: namespace, + Name: "controller_iptables_sync_total_count", + Help: "Total number of times kube-router synced iptables", + }) // ControllerIpvsServicesSyncTime Time it took for controller to sync ipvs services ControllerIpvsServicesSyncTime = prometheus.NewHistogram(prometheus.HistogramOpts{ Namespace: namespace,