Skip to content

Commit

Permalink
test: service metrics
Browse files Browse the repository at this point in the history
  • Loading branch information
IronCore864 committed Feb 12, 2025
1 parent 5476299 commit 9e5b65a
Showing 1 changed file with 47 additions and 0 deletions.
47 changes: 47 additions & 0 deletions internals/overlord/servstate/manager_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ import (
. "gopkg.in/check.v1"

"github.com/canonical/pebble/internals/logger"
"github.com/canonical/pebble/internals/metrics"
"github.com/canonical/pebble/internals/overlord/checkstate"
"github.com/canonical/pebble/internals/overlord/restart"
"github.com/canonical/pebble/internals/overlord/servstate"
Expand Down Expand Up @@ -2093,3 +2094,49 @@ func waitChecks(c *C, checkMgr *checkstate.CheckManager, f func(checks []*checks
c.Fatal("timed out waiting for checks to settle")
return nil
}

func (s *S) TestMetrics(c *C) {
s.newServiceManager(c)
s.planAddLayer(c, testPlanLayer)
s.planChanged(c)

s.startTestServices(c, true)
if c.Failed() {
return
}
buf := new(bytes.Buffer)
openTelemetryWriter := metrics.NewOpenTelemetryWriter(buf)
s.manager.WriteMetrics(openTelemetryWriter)
metrics := buf.String()
c.Assert(metrics, testutil.Contains, "pebble_service_start_count{service=test1} 1")
c.Assert(metrics, testutil.Contains, "pebble_service_active{service=test1} 1")
c.Assert(metrics, testutil.Contains, "pebble_service_start_count{service=test2} 1")
c.Assert(metrics, testutil.Contains, "pebble_service_active{service=test2} 1")

s.stopTestServices(c)
s.manager.WriteMetrics(openTelemetryWriter)
metrics = buf.String()
c.Assert(metrics, testutil.Contains, "pebble_service_start_count{service=test1} 1")
c.Assert(metrics, testutil.Contains, "pebble_service_active{service=test1} 0")
c.Assert(metrics, testutil.Contains, "pebble_service_start_count{service=test2} 1")
c.Assert(metrics, testutil.Contains, "pebble_service_active{service=test2} 0")

s.startTestServices(c, true)
if c.Failed() {
return
}
s.manager.WriteMetrics(openTelemetryWriter)
metrics = buf.String()
c.Assert(metrics, testutil.Contains, "pebble_service_start_count{service=test1} 2")
c.Assert(metrics, testutil.Contains, "pebble_service_active{service=test1} 1")
c.Assert(metrics, testutil.Contains, "pebble_service_start_count{service=test2} 2")
c.Assert(metrics, testutil.Contains, "pebble_service_active{service=test2} 1")

s.stopTestServices(c)
s.manager.WriteMetrics(openTelemetryWriter)
metrics = buf.String()
c.Assert(metrics, testutil.Contains, "pebble_service_start_count{service=test1} 2")
c.Assert(metrics, testutil.Contains, "pebble_service_active{service=test1} 0")
c.Assert(metrics, testutil.Contains, "pebble_service_start_count{service=test2} 2")
c.Assert(metrics, testutil.Contains, "pebble_service_active{service=test2} 0")
}

0 comments on commit 9e5b65a

Please sign in to comment.