Skip to content

Commit 87fcae2

Browse files
authored
Merge pull request kubernetes#130204 from aroradaman/conntrack-count-metric
kube-proxy: metric to track entries deleted in conntrack reconciliation
2 parents 1e38c86 + 438df17 commit 87fcae2

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

pkg/proxy/conntrack/cleanup.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,12 +116,14 @@ func CleanStaleEntries(ct Interface, ipFamily v1.IPFamily,
116116
}
117117
}
118118

119-
if n, err := ct.ClearEntries(ipFamilyMap[ipFamily], filters...); err != nil {
119+
var n int
120+
if n, err = ct.ClearEntries(ipFamilyMap[ipFamily], filters...); err != nil {
120121
klog.ErrorS(err, "Failed to clear all conntrack entries", "ipFamily", ipFamily, "entriesDeleted", n, "took", time.Since(start))
121122
} else {
122123
klog.V(4).InfoS("Finished reconciling conntrack entries", "ipFamily", ipFamily, "entriesDeleted", n, "took", time.Since(start))
123124
}
124125
metrics.ReconcileConntrackFlowsLatency.WithLabelValues(string(ipFamily)).Observe(metrics.SinceInSeconds(start))
126+
metrics.ReconcileConntrackFlowsDeletedEntriesTotal.WithLabelValues(string(ipFamily)).Add(float64(n))
125127
}
126128

127129
// ipFamilyMap maps v1.IPFamily to the corresponding unix constant.

pkg/proxy/metrics/metrics.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -295,6 +295,17 @@ var (
295295
},
296296
[]string{"ip_family"},
297297
)
298+
299+
// ReconcileConntrackFlowsDeletedEntriesTotal is the number of entries deleted by conntrack reconciler.
300+
ReconcileConntrackFlowsDeletedEntriesTotal = metrics.NewCounterVec(
301+
&metrics.CounterOpts{
302+
Subsystem: kubeProxySubsystem,
303+
Name: "conntrack_reconciler_deleted_entries_total",
304+
Help: "Cumulative conntrack flows deleted by conntrack reconciler",
305+
StabilityLevel: metrics.ALPHA,
306+
},
307+
[]string{"ip_family"},
308+
)
298309
)
299310

300311
var registerMetricsOnce sync.Once
@@ -334,17 +345,20 @@ func RegisterMetrics(mode kubeproxyconfig.ProxyMode) {
334345
legacyregistry.MustRegister(IPTablesRulesTotal)
335346
legacyregistry.MustRegister(IPTablesRulesLastSync)
336347
legacyregistry.MustRegister(ReconcileConntrackFlowsLatency)
348+
legacyregistry.MustRegister(ReconcileConntrackFlowsDeletedEntriesTotal)
337349

338350
case kubeproxyconfig.ProxyModeIPVS:
339351
legacyregistry.MustRegister(IPTablesRestoreFailuresTotal)
340352
legacyregistry.MustRegister(ReconcileConntrackFlowsLatency)
353+
legacyregistry.MustRegister(ReconcileConntrackFlowsDeletedEntriesTotal)
341354

342355
case kubeproxyconfig.ProxyModeNFTables:
343356
legacyregistry.MustRegister(SyncFullProxyRulesLatency)
344357
legacyregistry.MustRegister(SyncPartialProxyRulesLatency)
345358
legacyregistry.MustRegister(NFTablesSyncFailuresTotal)
346359
legacyregistry.MustRegister(NFTablesCleanupFailuresTotal)
347360
legacyregistry.MustRegister(ReconcileConntrackFlowsLatency)
361+
legacyregistry.MustRegister(ReconcileConntrackFlowsDeletedEntriesTotal)
348362

349363
case kubeproxyconfig.ProxyModeKernelspace:
350364
// currently no winkernel-specific metrics

0 commit comments

Comments
 (0)