feature: added AdmissionController metrics (#7711)
* feature: added AdmissionController metrics * fix: flag control on admissionCollector * fix: admission collector disclaimer year and linting
This commit is contained in:
parent
43c22c4914
commit
a5bab6a715
7 changed files with 333 additions and 14 deletions
|
|
@ -36,6 +36,8 @@ type Collector interface {
|
|||
IncReloadCount()
|
||||
IncReloadErrorCount()
|
||||
|
||||
SetAdmissionMetrics(float64, float64, float64, float64, float64, float64)
|
||||
|
||||
OnStartedLeading(string)
|
||||
OnStoppedLeading(string)
|
||||
|
||||
|
|
@ -49,15 +51,16 @@ type Collector interface {
|
|||
// SetHosts sets the hostnames that are being served by the ingress controller
|
||||
SetHosts(sets.String)
|
||||
|
||||
Start()
|
||||
Stop()
|
||||
Start(string)
|
||||
Stop(string)
|
||||
}
|
||||
|
||||
type collector struct {
|
||||
nginxStatus collectors.NGINXStatusCollector
|
||||
nginxProcess collectors.NGINXProcessCollector
|
||||
|
||||
ingressController *collectors.Controller
|
||||
ingressController *collectors.Controller
|
||||
admissionController *collectors.AdmissionCollector
|
||||
|
||||
socket *collectors.SocketCollector
|
||||
|
||||
|
|
@ -90,11 +93,14 @@ func NewCollector(metricsPerHost bool, registry *prometheus.Registry, ingresscla
|
|||
|
||||
ic := collectors.NewController(podName, podNamespace, ingressclass)
|
||||
|
||||
am := collectors.NewAdmissionCollector(podName, podNamespace, ingressclass)
|
||||
|
||||
return Collector(&collector{
|
||||
nginxStatus: nc,
|
||||
nginxProcess: pc,
|
||||
|
||||
ingressController: ic,
|
||||
admissionController: am,
|
||||
ingressController: ic,
|
||||
|
||||
socket: s,
|
||||
|
||||
|
|
@ -127,9 +133,12 @@ func (c *collector) RemoveMetrics(ingresses, hosts []string) {
|
|||
c.ingressController.RemoveMetrics(hosts, c.registry)
|
||||
}
|
||||
|
||||
func (c *collector) Start() {
|
||||
func (c *collector) Start(admissionStatus string) {
|
||||
c.registry.MustRegister(c.nginxStatus)
|
||||
c.registry.MustRegister(c.nginxProcess)
|
||||
if admissionStatus != "" {
|
||||
c.registry.MustRegister(c.admissionController)
|
||||
}
|
||||
c.registry.MustRegister(c.ingressController)
|
||||
c.registry.MustRegister(c.socket)
|
||||
|
||||
|
|
@ -143,9 +152,12 @@ func (c *collector) Start() {
|
|||
go c.socket.Start()
|
||||
}
|
||||
|
||||
func (c *collector) Stop() {
|
||||
func (c *collector) Stop(admissionStatus string) {
|
||||
c.registry.Unregister(c.nginxStatus)
|
||||
c.registry.Unregister(c.nginxProcess)
|
||||
if admissionStatus != "" {
|
||||
c.registry.Unregister(c.admissionController)
|
||||
}
|
||||
c.registry.Unregister(c.ingressController)
|
||||
c.registry.Unregister(c.socket)
|
||||
|
||||
|
|
@ -167,6 +179,17 @@ func (c *collector) SetHosts(hosts sets.String) {
|
|||
c.socket.SetHosts(hosts)
|
||||
}
|
||||
|
||||
func (c *collector) SetAdmissionMetrics(testedIngressLength float64, testedIngressTime float64, renderingIngressLength float64, renderingIngressTime float64, testedConfigurationSize float64, admissionTime float64) {
|
||||
c.admissionController.SetAdmissionMetrics(
|
||||
testedIngressLength,
|
||||
testedIngressTime,
|
||||
renderingIngressLength,
|
||||
renderingIngressTime,
|
||||
testedConfigurationSize,
|
||||
admissionTime,
|
||||
)
|
||||
}
|
||||
|
||||
// OnStartedLeading indicates the pod was elected as the leader
|
||||
func (c *collector) OnStartedLeading(electionID string) {
|
||||
setLeader(true)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue