Skip to content
This repository has been archived by the owner on Mar 24, 2022. It is now read-only.

Commit

Permalink
Merge pull request #275 from databus23/worker-metrics-platform
Browse files Browse the repository at this point in the history
Add platform label to worker metrics
  • Loading branch information
vito committed May 24, 2018
2 parents 9b8977b + 1609294 commit 05b55d2
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 6 deletions.
2 changes: 2 additions & 0 deletions api/workerserver/heartbeat.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,11 +44,13 @@ func (s *Server) HeartbeatWorker(w http.ResponseWriter, r *http.Request) {
metric.WorkerContainers{
WorkerName: registration.Name,
Containers: registration.ActiveContainers,
Platform: registration.Platform,
}.Emit(s.logger)

metric.WorkerVolumes{
WorkerName: registration.Name,
Volumes: registration.ActiveVolumes,
Platform: registration.Platform,
}.Emit(s.logger)

savedWorker, err := s.dbWorkerFactory.HeartbeatWorker(registration, ttl)
Expand Down
16 changes: 12 additions & 4 deletions metric/emitter/prometheus.go
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ func (config *PrometheusConfig) NewEmitter() (metric.Emitter, error) {
Name: "containers",
Help: "Number of containers per worker",
},
[]string{"worker"},
[]string{"worker", "platform"},
)
prometheus.MustRegister(workerContainers)

Expand All @@ -144,7 +144,7 @@ func (config *PrometheusConfig) NewEmitter() (metric.Emitter, error) {
Name: "volumes",
Help: "Number of volumes per worker",
},
[]string{"worker"},
[]string{"worker", "platform"},
)
prometheus.MustRegister(workerVolumes)

Expand Down Expand Up @@ -327,27 +327,35 @@ func (emitter *PrometheusEmitter) workerContainersMetric(logger lager.Logger, ev
if !exists {
logger.Error("failed-to-find-worker-in-event", fmt.Errorf("expected worker to exist in event.Attributes"))
}
platform, exists := event.Attributes["platform"]
if !exists {
logger.Error("failed-to-find-platform-in-event", fmt.Errorf("expected platform to exist in event.Attributes"))
}

containers, ok := event.Value.(int)
if !ok {
logger.Error("worker-volumes-event-value-type-mismatch", fmt.Errorf("expected event.Value to be an int"))
}

emitter.workerContainers.WithLabelValues(worker).Set(float64(containers))
emitter.workerContainers.WithLabelValues(worker, platform).Set(float64(containers))
}

func (emitter *PrometheusEmitter) workerVolumesMetric(logger lager.Logger, event metric.Event) {
worker, exists := event.Attributes["worker"]
if !exists {
logger.Error("failed-to-find-worker-in-event", fmt.Errorf("expected worker to exist in event.Attributes"))
}
platform, exists := event.Attributes["platform"]
if !exists {
logger.Error("failed-to-find-platform-in-event", fmt.Errorf("expected platform to exist in event.Attributes"))
}

volumes, ok := event.Value.(int)
if !ok {
logger.Error("worker-volumes-event-value-type-mismatch", fmt.Errorf("expected event.Value to be an int"))
}

emitter.workerVolumes.WithLabelValues(worker).Set(float64(volumes))
emitter.workerVolumes.WithLabelValues(worker, platform).Set(float64(volumes))
}

func (emitter *PrometheusEmitter) httpResponseTimeMetrics(logger lager.Logger, event metric.Event) {
Expand Down
8 changes: 6 additions & 2 deletions metric/metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ func (event SchedulingJobDuration) Emit(logger lager.Logger) {

type WorkerContainers struct {
WorkerName string
Platform string
Containers int
}

Expand All @@ -122,14 +123,16 @@ func (event WorkerContainers) Emit(logger lager.Logger) {
Value: event.Containers,
State: EventStateOK,
Attributes: map[string]string{
"worker": event.WorkerName,
"worker": event.WorkerName,
"platform": event.Platform,
},
},
)
}

type WorkerVolumes struct {
WorkerName string
Platform string
Volumes int
}

Expand All @@ -141,7 +144,8 @@ func (event WorkerVolumes) Emit(logger lager.Logger) {
Value: event.Volumes,
State: EventStateOK,
Attributes: map[string]string{
"worker": event.WorkerName,
"worker": event.WorkerName,
"platform": event.Platform,
},
},
)
Expand Down

0 comments on commit 05b55d2

Please sign in to comment.