From 30848795b6cde661cda8e02ffb0a39ba3fb989c1 Mon Sep 17 00:00:00 2001 From: Michal Fojtik Date: Thu, 22 Jun 2017 14:58:13 +0200 Subject: [PATCH] deploy: added deployer_controller_failed_rollouts metrics --- .../deployer/deployer_controller.go | 2 +- .../deployer/deployer_controller_test.go | 2 +- pkg/deploy/controller/deployer/factory.go | 4 ++- pkg/deploy/controller/deployer/metrics.go | 35 +++++++++++++++++++ 4 files changed, 40 insertions(+), 3 deletions(-) mode change 100755 => 100644 pkg/deploy/controller/deployer/deployer_controller.go create mode 100644 pkg/deploy/controller/deployer/metrics.go diff --git a/pkg/deploy/controller/deployer/deployer_controller.go b/pkg/deploy/controller/deployer/deployer_controller.go old mode 100755 new mode 100644 index bdf9f5742af0..9d2533d239bc --- a/pkg/deploy/controller/deployer/deployer_controller.go +++ b/pkg/deploy/controller/deployer/deployer_controller.go @@ -1,4 +1,4 @@ -package deployment +package deployer import ( "fmt" diff --git a/pkg/deploy/controller/deployer/deployer_controller_test.go b/pkg/deploy/controller/deployer/deployer_controller_test.go index 32e7e57511b7..bcc509a26708 100644 --- a/pkg/deploy/controller/deployer/deployer_controller_test.go +++ b/pkg/deploy/controller/deployer/deployer_controller_test.go @@ -1,4 +1,4 @@ -package deployment +package deployer import ( "fmt" diff --git a/pkg/deploy/controller/deployer/factory.go b/pkg/deploy/controller/deployer/factory.go index cf8ade1cdfea..d7085a86ac9f 100644 --- a/pkg/deploy/controller/deployer/factory.go +++ b/pkg/deploy/controller/deployer/factory.go @@ -1,4 +1,4 @@ -package deployment +package deployer import ( "fmt" @@ -105,6 +105,7 @@ func (c *DeploymentController) addReplicationController(obj interface{}) { return } + updateFailedRolloutsMetrics(nil, rc) c.enqueueReplicationController(rc) } @@ -121,6 +122,7 @@ func (c *DeploymentController) updateReplicationController(old, cur interface{}) return } + updateFailedRolloutsMetrics(oldRC, curRC) c.enqueueReplicationController(curRC) } diff --git a/pkg/deploy/controller/deployer/metrics.go b/pkg/deploy/controller/deployer/metrics.go new file mode 100644 index 000000000000..fd7c6d00c0f7 --- /dev/null +++ b/pkg/deploy/controller/deployer/metrics.go @@ -0,0 +1,35 @@ +package deployer + +import ( + deployutil "github.com/openshift/origin/pkg/deploy/util" + "github.com/prometheus/client_golang/prometheus" + "k8s.io/kubernetes/pkg/api/v1" +) + +// DeployerControllerSubsystem is how this controller is represented in +// prometheus metrics. +const DeployerControllerSubsystem = "deployer_controller" + +var ( + failedRolloutsCounter = prometheus.NewCounterVec( + prometheus.CounterOpts{ + Subsystem: DeployerControllerSubsystem, + Name: "failed_rollouts", + Help: "Counts total failed rollouts", + }, + []string{}, + ) +) + +func init() { + prometheus.MustRegister(failedRolloutsCounter) +} + +func updateFailedRolloutsMetrics(oldRC, newRC *v1.ReplicationController) { + if oldRC != nil && deployutil.IsFailedDeployment(oldRC) { + return + } + if deployutil.IsFailedDeployment(newRC) { + failedRolloutsCounter.WithLabelValues().Inc() + } +}