Use metricBase for runtime metrics

This commit is contained in:
Daniel 2021-03-10 14:01:20 +01:00
parent aef3f26ad3
commit 566c8fe719
2 changed files with 19 additions and 30 deletions

View file

@ -8,41 +8,26 @@ import (
"github.com/safing/portbase/config"
)
func init() {
registryLock.Lock()
defer registryLock.Unlock()
func registerRuntimeMetric() error {
runtimeBase, err := newMetricBase("_runtime", nil, Options{
Name: "Golang Runtime",
Permission: api.PermitAdmin,
ExpertiseLevel: config.ExpertiseLevelDeveloper,
})
if err != nil {
return err
}
registry = append(registry, &runtimeMetrics{})
return register(&runtimeMetrics{
metricBase: runtimeBase,
})
}
var runtimeOpts = &Options{
Name: "Golang Runtime",
Permission: api.PermitAdmin,
ExpertiseLevel: config.ExpertiseLevelDeveloper,
}
type runtimeMetrics struct{}
func (r *runtimeMetrics) ID() string {
return "_runtime"
}
func (r *runtimeMetrics) LabeledID() string {
return "_runtime"
}
func (r *runtimeMetrics) Opts() *Options {
return runtimeOpts
}
func (r *runtimeMetrics) Permission() api.Permission {
return runtimeOpts.Permission
}
func (r *runtimeMetrics) ExpertiseLevel() config.ExpertiseLevel {
return runtimeOpts.ExpertiseLevel
type runtimeMetrics struct {
*metricBase
}
func (r *runtimeMetrics) WritePrometheus(w io.Writer) {
// TODO: Add global labels.
vm.WriteProcessMetrics(w)
}

View file

@ -51,6 +51,10 @@ func start() error {
return err
}
if err := registerRuntimeMetric(); err != nil {
return err
}
if err := registerAPI(); err != nil {
return err
}