Instrumentation: Adds environment_info metric (#28355)
Signed-off-by: bergquist <carl.bergquist@gmail.com> Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
This commit is contained in:
co-authored by
Arve Knudsen
parent
d2a792ea3b
commit
89ebb97fca
+37
-7
@@ -17,6 +17,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/go-macaron/session"
|
||||
"github.com/prometheus/common/model"
|
||||
ini "gopkg.in/ini.v1"
|
||||
|
||||
"github.com/grafana/grafana/pkg/components/gtime"
|
||||
@@ -267,17 +268,20 @@ type Cfg struct {
|
||||
CookieSameSiteDisabled bool
|
||||
CookieSameSiteMode http.SameSite
|
||||
|
||||
TempDataLifetime time.Duration
|
||||
TempDataLifetime time.Duration
|
||||
PluginsEnableAlpha bool
|
||||
PluginsAppsSkipVerifyTLS bool
|
||||
PluginSettings PluginSettings
|
||||
PluginsAllowUnsigned []string
|
||||
DisableSanitizeHtml bool
|
||||
EnterpriseLicensePath string
|
||||
|
||||
// Metrics
|
||||
MetricsEndpointEnabled bool
|
||||
MetricsEndpointBasicAuthUsername string
|
||||
MetricsEndpointBasicAuthPassword string
|
||||
MetricsEndpointDisableTotalStats bool
|
||||
PluginsEnableAlpha bool
|
||||
PluginsAppsSkipVerifyTLS bool
|
||||
PluginSettings PluginSettings
|
||||
PluginsAllowUnsigned []string
|
||||
DisableSanitizeHtml bool
|
||||
EnterpriseLicensePath string
|
||||
MetricsGrafanaEnvironmentInfo map[string]string
|
||||
|
||||
// Dashboards
|
||||
DefaultHomeDashboardPath string
|
||||
@@ -411,6 +415,29 @@ func applyEnvVariableOverrides(file *ini.File) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (cfg *Cfg) readGrafanaEnvironmentMetrics() error {
|
||||
environmentMetricsSection := cfg.Raw.Section("metrics.environment_info")
|
||||
keys := environmentMetricsSection.Keys()
|
||||
cfg.MetricsGrafanaEnvironmentInfo = make(map[string]string, len(keys))
|
||||
|
||||
for _, key := range keys {
|
||||
labelName := model.LabelName(key.Name())
|
||||
labelValue := model.LabelValue(key.Value())
|
||||
|
||||
if !labelName.IsValid() {
|
||||
return fmt.Errorf("invalid label name in [metrics.environment_info] configuration. name %q", labelName)
|
||||
}
|
||||
|
||||
if !labelValue.IsValid() {
|
||||
return fmt.Errorf("invalid label value in [metrics.environment_info] configuration. name %q value %q", labelName, labelValue)
|
||||
}
|
||||
|
||||
cfg.MetricsGrafanaEnvironmentInfo[string(labelName)] = string(labelValue)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (cfg *Cfg) readAnnotationSettings() {
|
||||
dashboardAnnotation := cfg.Raw.Section("annotations.dashboard")
|
||||
apiIAnnotation := cfg.Raw.Section("annotations.api")
|
||||
@@ -781,6 +808,9 @@ func (cfg *Cfg) Load(args *CommandLineArgs) error {
|
||||
cfg.readSmtpSettings()
|
||||
cfg.readQuotaSettings()
|
||||
cfg.readAnnotationSettings()
|
||||
if err := cfg.readGrafanaEnvironmentMetrics(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if VerifyEmailEnabled && !cfg.Smtp.Enabled {
|
||||
log.Warnf("require_email_validation is enabled but smtp is disabled")
|
||||
|
||||
Reference in New Issue
Block a user