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" "github.com/safing/portbase/config"
) )
func init() { func registerRuntimeMetric() error {
registryLock.Lock() runtimeBase, err := newMetricBase("_runtime", nil, Options{
defer registryLock.Unlock() 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{ type runtimeMetrics struct {
Name: "Golang Runtime", *metricBase
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
} }
func (r *runtimeMetrics) WritePrometheus(w io.Writer) { func (r *runtimeMetrics) WritePrometheus(w io.Writer) {
// TODO: Add global labels.
vm.WriteProcessMetrics(w) vm.WriteProcessMetrics(w)
} }

View file

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