generated from go-masonry/mortar-template
-
Notifications
You must be signed in to change notification settings - Fork 0
/
metrics.go
26 lines (23 loc) · 793 Bytes
/
metrics.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package mortar
import (
"github.com/go-masonry/bprometheus"
"github.com/go-masonry/mortar/interfaces/cfg"
confkeys "github.com/go-masonry/mortar/interfaces/cfg/keys"
"github.com/go-masonry/mortar/interfaces/monitor"
"github.com/go-masonry/mortar/providers"
"go.uber.org/fx"
)
// PrometheusFxOption registers prometheus
func PrometheusFxOption() fx.Option {
return fx.Options(
providers.MonitorFxOption(),
providers.MonitorGRPCInterceptorFxOption(),
bprometheus.PrometheusInternalHandlerFxOption(),
fx.Provide(PrometheusBuilder),
)
}
// PrometheusBuilder returns a monitor.Builder that is implemented by Prometheus
func PrometheusBuilder(cfg cfg.Config) monitor.Builder {
name := cfg.Get(confkeys.ApplicationName).String()
return bprometheus.Builder().SetNamespace(name)
}