5555// metrics must be explicitly exposed with a call to InitMetrics
5656// FIXME we have global metrics but an internal and external API; this may lead to some confusion.
5757func init () {
58- err := report .SetupMetrics (logger .NewZapStub ("instance-metrics" ), build .ServiceName , version .DefaultVersion )
59- if err != nil {
60- zerolog .Ctx (context .TODO ()).Error ().Err (err ).Msg ("unable to initialize metrics" ) // TODO is used because this may logged during the package load
61- }
6258
6359 registry = newMetricsRegistry ("http_server" )
6460 cntHTTPNew = newCounter (registry , "tcp_open" )
@@ -78,6 +74,17 @@ func init() {
7874 cntFileDeliv .Register (routesRegistry .newRegistry ("deliverFile" ))
7975 cntGetPGP .Register (routesRegistry .newRegistry ("getPGPKey" ))
8076 cntAuditUnenroll .Register (routesRegistry .newRegistry ("auditUnenroll" ))
77+
78+ err := report .SetupMetricsOptions (report.MetricOptions {
79+ Logger : logger .NewZapStub ("instance-metrics" ),
80+ Name : build .ServiceName ,
81+ Version : version .DefaultVersion ,
82+ SystemMetrics : monitoring .NewRegistry (),
83+ ProcessMetrics : registry .registry ,
84+ })
85+ if err != nil {
86+ zerolog .Ctx (context .TODO ()).Error ().Err (err ).Msg ("unable to initialize metrics" ) // TODO is used because this may logged during the package load
87+ }
8188}
8289
8390// metricsRegistry wraps libbeat and prometheus registries
@@ -91,7 +98,7 @@ func newMetricsRegistry(name string) *metricsRegistry {
9198 reg := monitoring .Default
9299 return & metricsRegistry {
93100 fullName : name ,
94- registry : reg .NewRegistry (name ),
101+ registry : reg .GetOrCreateRegistry (name ),
95102 promReg : prometheus .NewRegistry (),
96103 }
97104}
@@ -103,7 +110,7 @@ func (r *metricsRegistry) newRegistry(name string) *metricsRegistry {
103110 }
104111 return & metricsRegistry {
105112 fullName : fullName ,
106- registry : r .registry .NewRegistry (name ),
113+ registry : r .registry .GetOrCreateRegistry (name ),
107114 promReg : r .promReg ,
108115 }
109116}
0 commit comments