K8s: don't publish metrics for local services that are always available (#101003)
This commit is contained in:
@@ -127,7 +127,10 @@ func NewAvailableConditionController(
|
||||
func (c *AvailableConditionController) sync(key string) error {
|
||||
originalAPIService, err := c.apiServiceLister.Get(key)
|
||||
if apierrors.IsNotFound(err) {
|
||||
c.metrics.ForgetAPIService(key)
|
||||
if originalAPIService.Spec.Service != nil {
|
||||
// Only reset state, if the service was a remote service
|
||||
c.metrics.ForgetAPIService(key)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
if err != nil {
|
||||
@@ -292,7 +295,10 @@ func (c *AvailableConditionController) sync(key string) error {
|
||||
// apiservices. Doing that means we don't want to quickly issue no-op updates.
|
||||
func (c *AvailableConditionController) updateAPIServiceStatus(originalAPIService, newAPIService *apiregistrationv1.APIService) (*apiregistrationv1.APIService, error) {
|
||||
// update this metric on every sync operation to reflect the actual state
|
||||
c.metrics.SetUnavailableGauge(newAPIService)
|
||||
if newAPIService.Spec.Service != nil {
|
||||
// Only expose the metric for remote services, trusts the type on the new object
|
||||
c.metrics.SetUnavailableGauge(newAPIService)
|
||||
}
|
||||
|
||||
if equality.Semantic.DeepEqual(originalAPIService.Status, newAPIService.Status) {
|
||||
return newAPIService, nil
|
||||
@@ -319,7 +325,10 @@ func (c *AvailableConditionController) updateAPIServiceStatus(originalAPIService
|
||||
return nil, err
|
||||
}
|
||||
|
||||
c.metrics.SetUnavailableCounter(originalAPIService, newAPIService)
|
||||
if newAPIService.Spec.Service != nil {
|
||||
// Only expose the metric for remote services, trusts the type on the new object
|
||||
c.metrics.SetUnavailableCounter(originalAPIService, newAPIService)
|
||||
}
|
||||
return newAPIService, nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user