Skip to content

Commit

Permalink
event pod -> gru. opts
Browse files Browse the repository at this point in the history
  • Loading branch information
ghostec committed Sep 15, 2017
1 parent abadbe3 commit 227e7e5
Show file tree
Hide file tree
Showing 6 changed files with 49 additions and 14 deletions.
2 changes: 1 addition & 1 deletion config/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ worker:
reporters:
dogstatsd:
host: "0.0.0.0:8125"
prefix: "test"
prefix: "test."
scaleUpTimeoutSeconds: 300
scaleDownTimeoutSeconds: 300
deleteTimeoutSeconds: 150
Expand Down
11 changes: 8 additions & 3 deletions models/pod.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ package models

import (
"bytes"
"fmt"
"strings"
"text/template"

Expand Down Expand Up @@ -149,7 +148,10 @@ func NewPod(
err := pod.configureHostPorts(clientset, redisClient)

if err == nil {
reporters.GetInstance().Report(fmt.Sprintf("pod.new.%s", namespace))
reporters.GetInstance().Report("gru.new", map[string]string{
"name": game,
"scheduler": namespace,
})
}

return pod, err
Expand Down Expand Up @@ -208,7 +210,10 @@ func (p *Pod) Delete(clientset kubernetes.Interface, redisClient redisinterfaces
//TODO: try again?
}
if err == nil {
reporters.GetInstance().Report(fmt.Sprintf("pod.delete.%s", p.Namespace))
reporters.GetInstance().Report("gru.delete", map[string]string{
"name": p.Game,
"scheduler": p.Namespace,
})
}

return nil
Expand Down
24 changes: 18 additions & 6 deletions models/pod_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,10 @@ var _ = Describe("Pod", func() {
)

createPod := func() (*models.Pod, error) {
mr.EXPECT().Report("pod.new.pong-free-for-all")
mr.EXPECT().Report("gru.new", map[string]string{
"name": "pong",
"scheduler": "pong-free-for-all",
})

pod, err := models.NewPod(
game,
Expand Down Expand Up @@ -129,11 +132,11 @@ var _ = Describe("Pod", func() {
})

Describe("Calling Reporters' singleton instance", func() {
It("should report pod.new on models.NewPod()", func() {
It("should report gru.new on models.NewPod()", func() {
createPod()
})

It("should report pod.delete on pod.Delete()", func() {
It("should report gru.delete on pod.Delete()", func() {
mockRedisClient.EXPECT().TxPipeline().Return(mockPipeline)
mockPipeline.EXPECT().SAdd(models.FreePortsRedisKey(), 5000)
mockPipeline.EXPECT().SAdd(models.FreePortsRedisKey(), 5001)
Expand All @@ -144,7 +147,10 @@ var _ = Describe("Pod", func() {
_, err = pod.Create(clientset)
Expect(err).NotTo(HaveOccurred())

mr.EXPECT().Report("pod.delete.pong-free-for-all")
mr.EXPECT().Report("gru.delete", map[string]string{
"name": "pong",
"scheduler": "pong-free-for-all",
})
err = pod.Delete(clientset, mockRedisClient)
Expect(err).NotTo(HaveOccurred())
})
Expand Down Expand Up @@ -212,7 +218,10 @@ var _ = Describe("Pod", func() {
})

It("should create pod without requests and limits", func() {
mr.EXPECT().Report("pod.new.pong-free-for-all")
mr.EXPECT().Report("gru.new", map[string]string{
"name": "pong",
"scheduler": "pong-free-for-all",
})
pod, err := models.NewPod(
game,
image,
Expand Down Expand Up @@ -340,7 +349,10 @@ var _ = Describe("Pod", func() {
_, err = pod.Create(clientset)
Expect(err).NotTo(HaveOccurred())

mr.EXPECT().Report("pod.delete.pong-free-for-all")
mr.EXPECT().Report("gru.delete", map[string]string{
"name": "pong",
"scheduler": "pong-free-for-all",
})
err = pod.Delete(clientset, mockRedisClient)
Expect(err).NotTo(HaveOccurred())
})
Expand Down
5 changes: 4 additions & 1 deletion models/room_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,10 @@ var _ = Describe("Room", func() {
Return(goredis.NewStringResult("5001", nil))
mockPipeline.EXPECT().Exec()

mr.EXPECT().Report("pod.new.pong-free-for-all")
mr.EXPECT().Report("gru.new", map[string]string{
"name": "pong",
"scheduler": "pong-free-for-all",
})
pod, err := models.NewPod(
game,
image,
Expand Down
6 changes: 4 additions & 2 deletions reporters/reporter_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,14 @@ import (

var _ = Describe("Reporters", func() {
It("Reporters.Report() must call Report on all children", func() {
opts := map[string]string{"game": "pong"}

for _, mr := range mrs {
mr.EXPECT().Report("report", map[string]string{})
mr.EXPECT().Report("report", opts)
}
reporters.MakeDogStatsD(config, logger)

singleton.Report("report", map[string]string{})
singleton.Report("report", opts)
})

It("Reporters must be Singleton", func() {
Expand Down
15 changes: 14 additions & 1 deletion reporters/statsd.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,19 @@ type DogStatsD struct {
client *dogstatsd.Client
}

func appendTag(key string, tags []string, opts map[string]string) []string {
tag, prs := opts[key]
if prs {
return append(tags, tag)
}
return tags
}

func (d *DogStatsD) Report(event string, opts map[string]string) error {
d.client.Count(event, 1, []string{}, 1)
var tags []string
tags = appendTag("game", tags, opts)
tags = appendTag("scheduler", tags, opts)
d.client.Count(event, 1, tags, 1)
return nil
}

Expand All @@ -38,6 +49,8 @@ func NewDogStatsD(config *viper.Viper, logger *logrus.Logger) (*DogStatsD, error
if err != nil {
return nil, err
}
prefix := config.GetString("reporters.dogstatsd.prefix")
c.Namespace = prefix
dogstatsdR := &DogStatsD{client: c}
return dogstatsdR, nil
}

0 comments on commit 227e7e5

Please sign in to comment.