本文整理匯總了Golang中github.com/juju/juju/worker/metrics/spool.NewJSONMetricReader函數的典型用法代碼示例。如果您正苦於以下問題:Golang NewJSONMetricReader函數的具體用法?Golang NewJSONMetricReader怎麽用?Golang NewJSONMetricReader使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了NewJSONMetricReader函數的10個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: TestUnblockedReaders
func (s *metricsReaderSuite) TestUnblockedReaders(c *gc.C) {
r, err := spool.NewJSONMetricReader(s.paths.GetMetricsSpoolDir())
c.Assert(err, jc.ErrorIsNil)
err = r.Close()
c.Assert(err, jc.ErrorIsNil)
r2, err := spool.NewJSONMetricReader(s.paths.GetMetricsSpoolDir())
c.Assert(err, jc.ErrorIsNil)
c.Assert(r2, gc.NotNil)
err = r2.Close()
c.Assert(err, jc.ErrorIsNil)
}
示例2: TestInit
func (s *metricsRecorderSuite) TestInit(c *gc.C) {
w, err := spool.NewJSONMetricRecorder(
spool.MetricRecorderConfig{
SpoolDir: s.paths.GetMetricsSpoolDir(),
Metrics: map[string]corecharm.Metric{"pings": corecharm.Metric{}},
CharmURL: "local:precise/wordpress",
UnitTag: s.unitTag,
})
c.Assert(err, jc.ErrorIsNil)
c.Assert(w, gc.NotNil)
err = w.AddMetric("pings", "5", time.Now())
c.Assert(err, jc.ErrorIsNil)
err = w.Close()
c.Assert(err, jc.ErrorIsNil)
r, err := spool.NewJSONMetricReader(s.paths.GetMetricsSpoolDir())
c.Assert(err, jc.ErrorIsNil)
batches, err := r.Read()
c.Assert(err, jc.ErrorIsNil)
c.Assert(batches, gc.HasLen, 1)
batch := batches[0]
c.Assert(batch.CharmURL, gc.Equals, "local:precise/wordpress")
c.Assert(batch.UUID, gc.Not(gc.Equals), "")
c.Assert(batch.Metrics, gc.HasLen, 1)
c.Assert(batch.Metrics[0].Key, gc.Equals, "pings")
c.Assert(batch.Metrics[0].Value, gc.Equals, "5")
c.Assert(batch.UnitTag, gc.Equals, s.unitTag)
err = r.Close()
c.Assert(err, jc.ErrorIsNil)
}
示例3: TestBuiltinMetricNotGeneratedIfNotDefined
func (s *FlushContextSuite) TestBuiltinMetricNotGeneratedIfNotDefined(c *gc.C) {
uuid := utils.MustNewUUID()
paths := runnertesting.NewRealPaths(c)
ctx := s.getMeteredHookContext(c, uuid.String(), -1, "", noProxies, true, s.metricsDefinition("pings"), paths)
reader, err := spool.NewJSONMetricReader(
paths.GetMetricsSpoolDir(),
)
err = ctx.Flush("some badge", nil)
c.Assert(err, jc.ErrorIsNil)
batches, err := reader.Read()
c.Assert(err, jc.ErrorIsNil)
c.Assert(batches, gc.HasLen, 0)
}
示例4: TestMetricSendingSuccess
func (s *senderSuite) TestMetricSendingSuccess(c *gc.C) {
apiSender := newTestAPIMetricSender()
metricSender := sender.NewSender(apiSender, s.metricfactory)
stopCh := make(chan struct{})
err := metricSender.Do(stopCh)
c.Assert(err, jc.ErrorIsNil)
c.Assert(apiSender.batches, gc.HasLen, 1)
reader, err := spool.NewJSONMetricReader(s.spoolDir)
c.Assert(err, jc.ErrorIsNil)
batches, err := reader.Read()
c.Assert(err, jc.ErrorIsNil)
c.Assert(batches, gc.HasLen, 0)
}
示例5: TestRemoval
func (s *metricsReaderSuite) TestRemoval(c *gc.C) {
r, err := spool.NewJSONMetricReader(s.paths.GetMetricsSpoolDir())
c.Assert(err, jc.ErrorIsNil)
batches, err := r.Read()
c.Assert(err, jc.ErrorIsNil)
for _, batch := range batches {
err := r.Remove(batch.UUID)
c.Assert(err, jc.ErrorIsNil)
}
err = r.Close()
c.Assert(err, jc.ErrorIsNil)
batches, err = r.Read()
c.Assert(err, jc.ErrorIsNil)
c.Assert(batches, gc.HasLen, 0)
err = r.Close()
c.Assert(err, jc.ErrorIsNil)
}
示例6: TestUnknownMetricKey
func (s *metricsRecorderSuite) TestUnknownMetricKey(c *gc.C) {
w, err := spool.NewJSONMetricRecorder(
spool.MetricRecorderConfig{
SpoolDir: s.paths.GetMetricsSpoolDir(),
Metrics: map[string]corecharm.Metric{},
CharmURL: "local:precise/wordpress",
UnitTag: s.unitTag,
})
c.Assert(err, jc.ErrorIsNil)
c.Assert(w, gc.NotNil)
err = w.AddMetric("pings", "5", time.Now())
c.Assert(err, gc.ErrorMatches, `metric key "pings" not declared by the charm`)
err = w.Close()
c.Assert(err, jc.ErrorIsNil)
r, err := spool.NewJSONMetricReader(s.paths.GetMetricsSpoolDir())
c.Assert(err, jc.ErrorIsNil)
batches, err := r.Read()
c.Assert(err, jc.ErrorIsNil)
c.Assert(batches, gc.HasLen, 0)
}
示例7: TestSendingFails
func (s *senderSuite) TestSendingFails(c *gc.C) {
apiSender := newTestAPIMetricSender()
select {
case apiSender.sendError <- errors.New("something went wrong"):
default:
c.Fatalf("blocked error channel")
}
metricSender := sender.NewSender(apiSender, s.metricfactory)
stopCh := make(chan struct{})
err := metricSender.Do(stopCh)
c.Assert(err, gc.ErrorMatches, "something went wrong")
c.Assert(apiSender.batches, gc.HasLen, 1)
reader, err := spool.NewJSONMetricReader(s.spoolDir)
c.Assert(err, jc.ErrorIsNil)
batches, err := reader.Read()
c.Assert(err, jc.ErrorIsNil)
c.Assert(batches, gc.HasLen, 1)
}
示例8: TestSendingGetDuplicate
func (s *senderSuite) TestSendingGetDuplicate(c *gc.C) {
apiSender := newTestAPIMetricSender()
apiErr := ¶ms.Error{Message: "already exists", Code: params.CodeAlreadyExists}
select {
case apiSender.errors <- apiErr:
default:
c.Fatalf("blocked error channel")
}
metricSender := sender.NewSender(apiSender, s.metricfactory)
stopCh := make(chan struct{})
err := metricSender.Do(stopCh)
c.Assert(err, jc.ErrorIsNil)
c.Assert(apiSender.batches, gc.HasLen, 1)
reader, err := spool.NewJSONMetricReader(s.spoolDir)
c.Assert(err, jc.ErrorIsNil)
batches, err := reader.Read()
c.Assert(err, jc.ErrorIsNil)
c.Assert(batches, gc.HasLen, 0)
}
示例9: Reader
func (s *stubMetricFactory) Reader() (spool.MetricReader, error) {
s.MethodCall(s, "Reader")
return spool.NewJSONMetricReader(s.spoolDir)
}
示例10: TestMetricValidation
func (s *metricsRecorderSuite) TestMetricValidation(c *gc.C) {
tests := []struct {
about string
key string
value string
expectedError string
}{{
about: "metric not declared",
key: "pings",
value: "5",
expectedError: `metric key "pings" not declared by the charm`,
}, {
about: "non float metrics",
key: "pongs",
value: "abcd",
expectedError: `invalid value type: expected float, got "abcd"`,
}, {
about: "negative value",
key: "pongs",
value: "-5.0",
expectedError: `invalid value: value must be greater or equal to zero, got -5.0`,
}, {
about: "large value",
key: "pongs",
value: "1234567890123456789012345678901234567890",
expectedError: `metric value is too large`,
},
}
for _, test := range tests {
w, err := spool.NewJSONMetricRecorder(
spool.MetricRecorderConfig{
SpoolDir: s.paths.GetMetricsSpoolDir(),
Metrics: map[string]corecharm.Metric{
"juju-units": corecharm.Metric{},
"pongs": corecharm.Metric{
Type: corecharm.MetricTypeAbsolute,
},
},
CharmURL: "local:precise/wordpress",
UnitTag: s.unitTag,
})
c.Assert(err, jc.ErrorIsNil)
c.Assert(w, gc.NotNil)
c.Logf("running test: %s", test.about)
err = w.AddMetric(test.key, test.value, time.Now())
if test.expectedError != "" {
c.Assert(err, gc.ErrorMatches, test.expectedError)
err = w.Close()
c.Assert(err, jc.ErrorIsNil)
r, err := spool.NewJSONMetricReader(s.paths.GetMetricsSpoolDir())
c.Assert(err, jc.ErrorIsNil)
batches, err := r.Read()
c.Assert(err, jc.ErrorIsNil)
c.Assert(batches, gc.HasLen, 0)
} else {
c.Assert(err, jc.ErrorIsNil)
err = w.Close()
c.Assert(err, jc.ErrorIsNil)
}
}
}