mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-29 22:46:12 +00:00
kube-proxy: metric to track conntrack reconciliation latency
kube_proxy_conntrack_reconciler_sync_duration_seconds can be used to track the latency of conntrack flow reconciliation. Signed-off-by: Daman Arora <aroradaman@gmail.com>
This commit is contained in:
parent
4e7e14203d
commit
bdd83038e8
@ -29,6 +29,7 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/util/sets"
|
"k8s.io/apimachinery/pkg/util/sets"
|
||||||
"k8s.io/klog/v2"
|
"k8s.io/klog/v2"
|
||||||
"k8s.io/kubernetes/pkg/proxy"
|
"k8s.io/kubernetes/pkg/proxy"
|
||||||
|
"k8s.io/kubernetes/pkg/proxy/metrics"
|
||||||
netutils "k8s.io/utils/net"
|
netutils "k8s.io/utils/net"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -120,6 +121,7 @@ func CleanStaleEntries(ct Interface, ipFamily v1.IPFamily,
|
|||||||
} else {
|
} else {
|
||||||
klog.V(4).InfoS("Finished reconciling conntrack entries", "ipFamily", ipFamily, "entriesDeleted", n, "took", time.Since(start))
|
klog.V(4).InfoS("Finished reconciling conntrack entries", "ipFamily", ipFamily, "entriesDeleted", n, "took", time.Since(start))
|
||||||
}
|
}
|
||||||
|
metrics.ReconcileConntrackFlowsLatency.WithLabelValues(string(ipFamily)).Observe(metrics.SinceInSeconds(start))
|
||||||
}
|
}
|
||||||
|
|
||||||
// ipFamilyMap maps v1.IPFamily to the corresponding unix constant.
|
// ipFamilyMap maps v1.IPFamily to the corresponding unix constant.
|
||||||
|
@ -283,6 +283,18 @@ var (
|
|||||||
"Number of packets accepted on nodeports of loopback interface",
|
"Number of packets accepted on nodeports of loopback interface",
|
||||||
nil, nil, metrics.ALPHA, "")
|
nil, nil, metrics.ALPHA, "")
|
||||||
LocalhostNodePortAcceptedNFAcctCounter = "localhost_nps_accepted_pkts"
|
LocalhostNodePortAcceptedNFAcctCounter = "localhost_nps_accepted_pkts"
|
||||||
|
|
||||||
|
// ReconcileConntrackFlowsLatency is the latency of one round of kube-proxy conntrack flows reconciliation.
|
||||||
|
ReconcileConntrackFlowsLatency = metrics.NewHistogramVec(
|
||||||
|
&metrics.HistogramOpts{
|
||||||
|
Subsystem: kubeProxySubsystem,
|
||||||
|
Name: "conntrack_reconciler_sync_duration_seconds",
|
||||||
|
Help: "ReconcileConntrackFlowsLatency latency in seconds",
|
||||||
|
Buckets: metrics.ExponentialBuckets(0.001, 2, 15),
|
||||||
|
StabilityLevel: metrics.ALPHA,
|
||||||
|
},
|
||||||
|
[]string{"ip_family"},
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
var registerMetricsOnce sync.Once
|
var registerMetricsOnce sync.Once
|
||||||
@ -321,15 +333,18 @@ func RegisterMetrics(mode kubeproxyconfig.ProxyMode) {
|
|||||||
legacyregistry.MustRegister(IPTablesPartialRestoreFailuresTotal)
|
legacyregistry.MustRegister(IPTablesPartialRestoreFailuresTotal)
|
||||||
legacyregistry.MustRegister(IPTablesRulesTotal)
|
legacyregistry.MustRegister(IPTablesRulesTotal)
|
||||||
legacyregistry.MustRegister(IPTablesRulesLastSync)
|
legacyregistry.MustRegister(IPTablesRulesLastSync)
|
||||||
|
legacyregistry.MustRegister(ReconcileConntrackFlowsLatency)
|
||||||
|
|
||||||
case kubeproxyconfig.ProxyModeIPVS:
|
case kubeproxyconfig.ProxyModeIPVS:
|
||||||
legacyregistry.MustRegister(IPTablesRestoreFailuresTotal)
|
legacyregistry.MustRegister(IPTablesRestoreFailuresTotal)
|
||||||
|
legacyregistry.MustRegister(ReconcileConntrackFlowsLatency)
|
||||||
|
|
||||||
case kubeproxyconfig.ProxyModeNFTables:
|
case kubeproxyconfig.ProxyModeNFTables:
|
||||||
legacyregistry.MustRegister(SyncFullProxyRulesLatency)
|
legacyregistry.MustRegister(SyncFullProxyRulesLatency)
|
||||||
legacyregistry.MustRegister(SyncPartialProxyRulesLatency)
|
legacyregistry.MustRegister(SyncPartialProxyRulesLatency)
|
||||||
legacyregistry.MustRegister(NFTablesSyncFailuresTotal)
|
legacyregistry.MustRegister(NFTablesSyncFailuresTotal)
|
||||||
legacyregistry.MustRegister(NFTablesCleanupFailuresTotal)
|
legacyregistry.MustRegister(NFTablesCleanupFailuresTotal)
|
||||||
|
legacyregistry.MustRegister(ReconcileConntrackFlowsLatency)
|
||||||
|
|
||||||
case kubeproxyconfig.ProxyModeKernelspace:
|
case kubeproxyconfig.ProxyModeKernelspace:
|
||||||
// currently no winkernel-specific metrics
|
// currently no winkernel-specific metrics
|
||||||
|
Loading…
Reference in New Issue
Block a user