mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Adds support for logs (specify level), metrics (enable metrics and Prometheus /metrics endpoint and traces (jaeger or otlp) for standalone API server. This will allow any grafana core service part of standalone apiserver to use logging, metrics and traces as normal.
43 lines
1.1 KiB
Go
43 lines
1.1 KiB
Go
package options
|
|
|
|
import (
|
|
"github.com/grafana/grafana/pkg/infra/log"
|
|
"github.com/grafana/grafana/pkg/infra/metrics"
|
|
"github.com/grafana/grafana/pkg/setting"
|
|
"github.com/prometheus/client_golang/prometheus"
|
|
"github.com/spf13/pflag"
|
|
genericapiserver "k8s.io/apiserver/pkg/server"
|
|
)
|
|
|
|
type MetricsOptions struct {
|
|
logger log.Logger
|
|
Enabled bool
|
|
MetricsRegisterer prometheus.Registerer
|
|
}
|
|
|
|
func NewMetrcicsOptions(logger log.Logger) *MetricsOptions {
|
|
return &MetricsOptions{
|
|
logger: logger,
|
|
}
|
|
}
|
|
|
|
func (o *MetricsOptions) AddFlags(fs *pflag.FlagSet) {
|
|
fs.BoolVar(&o.Enabled, "grafana.metrics.enable", false, "Enable metrics and Prometheus /metrics endpoint.")
|
|
}
|
|
|
|
func (o *MetricsOptions) Validate() []error {
|
|
return nil
|
|
}
|
|
|
|
func (o *MetricsOptions) ApplyTo(c *genericapiserver.RecommendedConfig) error {
|
|
c.EnableMetrics = o.Enabled
|
|
o.MetricsRegisterer = metrics.ProvideRegisterer()
|
|
metrics.SetBuildInformation(o.MetricsRegisterer, setting.BuildVersion, setting.BuildCommit, setting.BuildBranch, setting.BuildStamp)
|
|
|
|
if o.Enabled {
|
|
o.logger.Debug("Metrics enabled")
|
|
}
|
|
|
|
return nil
|
|
}
|