func (sinkManager *SinkManager) ensureContainerMetricsSinkFor(appId string) { if sinkManager.sinks.ContainerMetricsFor(appId) != nil { return } sink := containermetric.NewContainerMetricSink( appId, sinkManager.metricTTL, sinkManager.sinkTimeout, ) sinkManager.RegisterSink(sink) }
"github.com/gogo/protobuf/proto" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("Containermetric", func() { var ( sink *containermetric.ContainerMetricSink eventChan chan *events.Envelope ) BeforeEach(func() { eventChan = make(chan *events.Envelope) sink = containermetric.NewContainerMetricSink("myApp", 2*time.Second, 2*time.Second) go sink.Run(eventChan) }) Describe("StreamId", func() { It("returns the application ID", func() { Expect(sink.AppID()).To(Equal("myApp")) }) }) Describe("Run and GetLatest", func() { It("returns metrics for all instances", func() { now := time.Now() m1 := metricFor(1, now.Add(-1*time.Microsecond), 1, 1, 1) m2 := metricFor(2, now.Add(-1*time.Microsecond), 2, 2, 2)
"github.com/gogo/protobuf/proto" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("Containermetric", func() { var ( sink *containermetric.ContainerMetricSink eventChan chan *events.Envelope ) BeforeEach(func() { eventChan = make(chan *events.Envelope) sink = containermetric.NewContainerMetricSink("myApp", 2*time.Second, 2*time.Second, make(chan int64)) go sink.Run(eventChan) }) Describe("StreamId", func() { It("returns the application ID", func() { Expect(sink.StreamId()).To(Equal("myApp")) }) }) Describe("Run and GetLatest", func() { It("returns metrics for all instances", func() { now := time.Now() m1 := metricFor(1, now.Add(-1*time.Microsecond), 1, 1, 1) m2 := metricFor(2, now.Add(-1*time.Microsecond), 2, 2, 2)