safing-portbase/metrics/metric_runtime.go
2021-01-28 17:44:02 +01:00

45 lines
865 B
Go

package metrics
import (
"io"
vm "github.com/VictoriaMetrics/metrics"
"github.com/safing/portbase/api"
"github.com/safing/portbase/config"
)
func init() {
registry = append(registry, &runtimeMetrics{})
}
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
}
func (r *runtimeMetrics) WritePrometheus(w io.Writer) {
vm.WriteProcessMetrics(w)
}