Skip to content

Commit

Permalink
Move observer to metrics package
Browse files Browse the repository at this point in the history
  • Loading branch information
stefanprodan committed Mar 30, 2019
1 parent b945b37 commit b2c12c1
Show file tree
Hide file tree
Showing 6 changed files with 22 additions and 18 deletions.
3 changes: 2 additions & 1 deletion cmd/flagger/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
informers "github.com/weaveworks/flagger/pkg/client/informers/externalversions"
"github.com/weaveworks/flagger/pkg/controller"
"github.com/weaveworks/flagger/pkg/logging"
"github.com/weaveworks/flagger/pkg/metrics"
"github.com/weaveworks/flagger/pkg/notifier"
"github.com/weaveworks/flagger/pkg/server"
"github.com/weaveworks/flagger/pkg/signals"
Expand Down Expand Up @@ -105,7 +106,7 @@ func main() {
logger.Infof("Watching namespace %s", namespace)
}

ok, err := controller.CheckMetricsServer(metricsServer)
ok, err := metrics.CheckMetricsServer(metricsServer)
if ok {
logger.Infof("Connected to metrics server %s", metricsServer)
} else {
Expand Down
8 changes: 2 additions & 6 deletions pkg/controller/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ type Controller struct {
canaries *sync.Map
jobs map[string]CanaryJob
deployer CanaryDeployer
observer CanaryObserver
observer metrics.CanaryObserver
recorder metrics.CanaryRecorder
notifier *notifier.Slack
meshProvider string
Expand Down Expand Up @@ -81,10 +81,6 @@ func NewController(
},
}

observer := CanaryObserver{
metricsServer: metricServer,
}

recorder := metrics.NewCanaryRecorder(controllerAgentName, true)
recorder.SetInfo(version, meshProvider)

Expand All @@ -101,7 +97,7 @@ func NewController(
jobs: map[string]CanaryJob{},
flaggerWindow: flaggerWindow,
deployer: deployer,
observer: observer,
observer: metrics.NewObserver(metricServer),
recorder: recorder,
notifier: notifier,
meshProvider: meshProvider,
Expand Down
7 changes: 2 additions & 5 deletions pkg/controller/controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ type Mocks struct {
meshClient clientset.Interface
flaggerClient clientset.Interface
deployer CanaryDeployer
observer CanaryObserver
observer metrics.CanaryObserver
ctrl *Controller
logger *zap.SugaredLogger
router router.Interface
Expand Down Expand Up @@ -74,9 +74,6 @@ func SetupMocks(abtest bool) Mocks {
flaggerClient: flaggerClient,
},
}
observer := CanaryObserver{
metricsServer: "fake",
}

// init controller
flaggerInformerFactory := informers.NewSharedInformerFactory(flaggerClient, noResyncPeriodFunc())
Expand All @@ -94,7 +91,7 @@ func SetupMocks(abtest bool) Mocks {
canaries: new(sync.Map),
flaggerWindow: time.Second,
deployer: deployer,
observer: observer,
observer: metrics.NewObserver("fake"),
recorder: metrics.NewCanaryRecorder(controllerAgentName, false),
}
ctrl.flaggerSynced = alwaysReady
Expand Down
8 changes: 4 additions & 4 deletions pkg/controller/scheduler.go
Original file line number Diff line number Diff line change
Expand Up @@ -501,7 +501,7 @@ func (c *Controller) analyseCanary(r *flaggerv1.Canary) bool {
c.recordEventWarningf(r, "Halt advancement no values found for metric %s probably %s.%s is not receiving traffic",
metric.Name, r.Spec.TargetRef.Name, r.Namespace)
} else {
c.recordEventErrorf(r, "Metrics server %s query failed: %v", c.observer.metricsServer, err)
c.recordEventErrorf(r, "Metrics server %s query failed: %v", c.observer.GetMetricsServer(), err)
}
return false
}
Expand All @@ -519,7 +519,7 @@ func (c *Controller) analyseCanary(r *flaggerv1.Canary) bool {
c.recordEventWarningf(r, "Halt advancement no values found for metric %s probably %s.%s is not receiving traffic",
metric.Name, r.Spec.TargetRef.Name, r.Namespace)
} else {
c.recordEventErrorf(r, "Metrics server %s query failed: %v", c.observer.metricsServer, err)
c.recordEventErrorf(r, "Metrics server %s query failed: %v", c.observer.GetMetricsServer(), err)
}
return false
}
Expand All @@ -533,7 +533,7 @@ func (c *Controller) analyseCanary(r *flaggerv1.Canary) bool {
if metric.Name == "istio_request_duration_seconds_bucket" {
val, err := c.observer.GetDeploymentHistogram(r.Spec.TargetRef.Name, r.Namespace, metric.Name, metric.Interval)
if err != nil {
c.recordEventErrorf(r, "Metrics server %s query failed: %v", c.observer.metricsServer, err)
c.recordEventErrorf(r, "Metrics server %s query failed: %v", c.observer.GetMetricsServer(), err)
return false
}
t := time.Duration(metric.Threshold) * time.Millisecond
Expand All @@ -551,7 +551,7 @@ func (c *Controller) analyseCanary(r *flaggerv1.Canary) bool {
c.recordEventWarningf(r, "Halt advancement no values found for metric %s probably %s.%s is not receiving traffic",
metric.Name, r.Spec.TargetRef.Name, r.Namespace)
} else {
c.recordEventErrorf(r, "Metrics server %s query failed: %v", c.observer.metricsServer, err)
c.recordEventErrorf(r, "Metrics server %s query failed: %v", c.observer.GetMetricsServer(), err)
}
return false
}
Expand Down
12 changes: 11 additions & 1 deletion pkg/controller/observer.go → pkg/metrics/observer.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package controller
package metrics

import (
"context"
Expand Down Expand Up @@ -29,6 +29,16 @@ type vectorQueryResponse struct {
}
}

func NewObserver(metricsServer string) CanaryObserver {
return CanaryObserver{
metricsServer: metricsServer,
}
}

func (c *CanaryObserver) GetMetricsServer() string {
return c.metricsServer
}

func (c *CanaryObserver) queryMetric(query string) (*vectorQueryResponse, error) {
promURL, err := url.Parse(c.metricsServer)
if err != nil {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package controller
package metrics

import (
"net/http"
Expand Down

0 comments on commit b2c12c1

Please sign in to comment.