setting

package
v0.0.0-testrgm3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 21, 2023 License: AGPL-3.0 Imports: 28 Imported by: 5,416

Documentation

Index

Constants

View Source
const (
	RedactedPassword = "*********"
	DefaultHTTPAddr  = "0.0.0.0"
	Dev              = "development"
	Prod             = "production"
	ApplicationName  = "Grafana"
)
View Source
const (

	// SchedulerBaseInterval base interval of the scheduler. Controls how often the scheduler fetches database for new changes as well as schedules evaluation of a rule
	// changing this value is discouraged because this could cause existing alert definition
	// with intervals that are not exactly divided by this number not to be evaluated
	SchedulerBaseInterval = 10 * time.Second
	// DefaultRuleEvaluationInterval indicates a default interval of for how long a rule should be evaluated to change state from Pending to Alerting
	DefaultRuleEvaluationInterval = SchedulerBaseInterval * 6 // == 60 seconds

)

Variables

View Source
var (
	// App settings.
	Env              = Dev
	AppUrl           string
	AppSubUrl        string
	ServeFromSubPath bool
	InstanceName     string

	// build
	BuildVersion string
	BuildCommit  string
	BuildBranch  string
	BuildStamp   int64
	IsEnterprise bool

	// packaging
	Packaging = "unknown"

	// Paths
	HomePath       string
	CustomInitPath = "conf/custom.ini"

	// HTTP server options
	StaticRootPath string

	// Security settings.
	SecretKey              string
	DisableGravatar        bool
	DataProxyWhiteList     map[string]bool
	CookieSecure           bool
	CookieSameSiteDisabled bool
	CookieSameSiteMode     http.SameSite

	// Dashboard history
	DashboardVersionsToKeep int
	MinRefreshInterval      string

	// User settings
	AllowUserSignUp         bool
	AllowUserOrgCreate      bool
	VerifyEmailEnabled      bool
	LoginHint               string
	PasswordHint            string
	DisableSignoutMenu      bool
	SignoutRedirectUrl      string
	ExternalUserMngLinkUrl  string
	ExternalUserMngLinkName string
	ExternalUserMngInfo     string

	// HTTP auth
	SigV4AuthEnabled bool
	AzureAuthEnabled bool

	// Global setting objects.
	Raw *ini.File

	// Alerting
	AlertingEnabled            *bool
	ExecuteAlerts              bool
	AlertingRenderLimit        int
	AlertingErrorOrTimeout     string
	AlertingNoDataOrNullValues string

	AlertingEvaluationTimeout   time.Duration
	AlertingNotificationTimeout time.Duration
	AlertingMaxAttempts         int
	AlertingMinInterval         int64

	// Explore UI
	ExploreEnabled bool

	// Help UI
	HelpEnabled bool

	// Profile UI
	ProfileEnabled bool

	// News Feed
	NewsFeedEnabled bool

	// Grafana.NET URL
	GrafanaComUrl string

	ImageUploadProvider string
)
View Source
var (
	ErrOperationNotPermitted = errors.New("operation not permitted")
)

Functions

func AddExpander

func AddExpander(name string, priority int64, e Expander)

func EnvKey

func EnvKey(sectionName string, keyName string) string

func ExpandVar

func ExpandVar(s string) (string, error)

func GetAlertmanagerDefaultConfiguration

func GetAlertmanagerDefaultConfiguration() string

func GetAllowedOriginGlobs

func GetAllowedOriginGlobs(originPatterns []string) ([]glob.Glob, error)

func GetExpanderRegex

func GetExpanderRegex() *regexp.Regexp

Slightly hacky function to avoid code duplication. If this is eventually called in multiple places, consider refactoring or potentially adding more general helper functions to this package

func IsLegacyAlertingEnabled

func IsLegacyAlertingEnabled() bool

IsLegacyAlertingEnabled returns whether the legacy alerting is enabled or not. It's safe to be used only after readAlertingSettings() and ReadUnifiedAlertingSettings() are executed.

func ReadFeatureTogglesFromInitFile

func ReadFeatureTogglesFromInitFile(featureTogglesSection *ini.Section) (map[string]bool, error)

func RedactedURL

func RedactedURL(value string) (string, error)

func RedactedValue

func RedactedValue(key, value string) string

func ToAbsUrl

func ToAbsUrl(relativeUrl string) string

Types

type AnnotationCleanupSettings

type AnnotationCleanupSettings struct {
	MaxAge   time.Duration
	MaxCount int64
}

type Cfg

type Cfg struct {
	Target []string
	Raw    *ini.File
	Logger log.Logger

	// HTTP Server Settings
	CertFile         string
	KeyFile          string
	HTTPAddr         string
	HTTPPort         string
	AppURL           string
	AppSubURL        string
	ServeFromSubPath bool
	StaticRootPath   string
	Protocol         Scheme
	SocketGid        int
	SocketMode       int
	SocketPath       string
	RouterLogging    bool
	Domain           string
	CDNRootURL       *url.URL
	ReadTimeout      time.Duration
	EnableGzip       bool
	EnforceDomain    bool
	MinTLSVersion    string

	// Security settings
	SecretKey             string
	EmailCodeValidMinutes int

	// build
	BuildVersion string
	BuildCommit  string
	BuildBranch  string
	BuildStamp   int64
	IsEnterprise bool

	// packaging
	Packaging string

	// Paths
	HomePath              string
	ProvisioningPath      string
	DataPath              string
	LogsPath              string
	PluginsPath           string
	BundledPluginsPath    string
	EnterpriseLicensePath string

	// SMTP email settings
	Smtp SmtpSettings

	// Rendering
	ImagesDir                      string
	CSVsDir                        string
	RendererUrl                    string
	RendererCallbackUrl            string
	RendererAuthToken              string
	RendererConcurrentRequestLimit int
	RendererRenderKeyLifeTime      time.Duration

	// Security
	DisableInitAdminCreation          bool
	DisableBruteForceLoginProtection  bool
	CookieSecure                      bool
	CookieSameSiteDisabled            bool
	CookieSameSiteMode                http.SameSite
	AllowEmbedding                    bool
	XSSProtectionHeader               bool
	ContentTypeProtectionHeader       bool
	StrictTransportSecurity           bool
	StrictTransportSecurityMaxAge     int
	StrictTransportSecurityPreload    bool
	StrictTransportSecuritySubDomains bool
	// CSPEnabled toggles Content Security Policy support.
	CSPEnabled bool
	// CSPTemplate contains the Content Security Policy template.
	CSPTemplate string
	// CSPReportEnabled toggles Content Security Policy Report Only support.
	CSPReportOnlyEnabled bool
	// CSPReportOnlyTemplate contains the Content Security Policy Report Only template.
	CSPReportOnlyTemplate            string
	AngularSupportEnabled            bool
	DisableFrontendSandboxForPlugins []string

	TempDataLifetime time.Duration

	// Plugins
	PluginsEnableAlpha               bool
	PluginsAppsSkipVerifyTLS         bool
	PluginSettings                   PluginSettings
	PluginsAllowUnsigned             []string
	PluginCatalogURL                 string
	PluginCatalogHiddenPlugins       []string
	PluginAdminEnabled               bool
	PluginAdminExternalManageEnabled bool
	PluginForcePublicKeyDownload     bool
	PluginSkipPublicKeyDownload      bool

	PluginsCDNURLTemplate    string
	PluginLogBackendRequests bool

	// Panels
	DisableSanitizeHtml bool

	// Metrics
	MetricsEndpointEnabled           bool
	MetricsEndpointBasicAuthUsername string
	MetricsEndpointBasicAuthPassword string
	MetricsEndpointDisableTotalStats bool
	MetricsGrafanaEnvironmentInfo    map[string]string

	// Dashboards
	DefaultHomeDashboardPath string

	// Auth
	LoginCookieName              string
	LoginMaxInactiveLifetime     time.Duration
	LoginMaxLifetime             time.Duration
	TokenRotationIntervalMinutes int
	SigV4AuthEnabled             bool
	SigV4VerboseLogging          bool
	AzureAuthEnabled             bool
	AzureSkipOrgRoleSync         bool
	BasicAuthEnabled             bool
	AdminUser                    string
	AdminPassword                string
	DisableLogin                 bool
	AdminEmail                   string
	DisableSyncLock              bool
	DisableLoginForm             bool
	// Not documented & not supported
	// stand in until a more complete solution is implemented
	AuthConfigUIAdminAccess bool
	// TO REMOVE: Not documented & not supported. Remove with legacy handlers in 10.2
	AuthBrokerEnabled bool

	// AWS Plugin Auth
	AWSAllowedAuthProviders []string
	AWSAssumeRoleEnabled    bool
	AWSListMetricsPageLimit int

	// Azure Cloud settings
	Azure *azsettings.AzureSettings

	// Auth proxy settings
	AuthProxyEnabled          bool
	AuthProxyHeaderName       string
	AuthProxyHeaderProperty   string
	AuthProxyAutoSignUp       bool
	AuthProxyEnableLoginToken bool
	AuthProxyWhitelist        string
	AuthProxyHeaders          map[string]string
	AuthProxyHeadersEncoded   bool
	AuthProxySyncTTL          int

	// OAuth
	OAuthAutoLogin                bool
	OAuthCookieMaxAge             int
	OAuthAllowInsecureEmailLookup bool

	// JWT Auth
	JWTAuthEnabled                 bool
	JWTAuthHeaderName              string
	JWTAuthURLLogin                bool
	JWTAuthEmailClaim              string
	JWTAuthUsernameClaim           string
	JWTAuthExpectClaims            string
	JWTAuthJWKSetURL               string
	JWTAuthCacheTTL                time.Duration
	JWTAuthKeyFile                 string
	JWTAuthJWKSetFile              string
	JWTAuthAutoSignUp              bool
	JWTAuthRoleAttributePath       string
	JWTAuthRoleAttributeStrict     bool
	JWTAuthAllowAssignGrafanaAdmin bool
	JWTAuthSkipOrgRoleSync         bool

	// Extended JWT Auth
	ExtendedJWTAuthEnabled    bool
	ExtendedJWTExpectIssuer   string
	ExtendedJWTExpectAudience string

	// Dataproxy
	SendUserHeader                 bool
	DataProxyLogging               bool
	DataProxyTimeout               int
	DataProxyDialTimeout           int
	DataProxyTLSHandshakeTimeout   int
	DataProxyExpectContinueTimeout int
	DataProxyMaxConnsPerHost       int
	DataProxyMaxIdleConns          int
	DataProxyKeepAlive             int
	DataProxyIdleConnTimeout       int
	ResponseLimit                  int64
	DataProxyRowLimit              int64
	DataProxyUserAgent             string

	// DistributedCache
	RemoteCacheOptions *RemoteCacheOptions

	ViewersCanEdit  bool
	EditorsCanAdmin bool

	ApiKeyMaxSecondsToLive int64

	// Check if a feature toggle is enabled
	// @deprecated
	IsFeatureToggleEnabled func(key string) bool // filled in dynamically

	AnonymousEnabled     bool
	AnonymousOrgName     string
	AnonymousOrgRole     string
	AnonymousHideVersion bool

	DateFormats DateFormats

	// User
	UserInviteMaxLifetime time.Duration
	HiddenUsers           map[string]struct{}
	CaseInsensitiveLogin  bool // Login and Email will be considered case insensitive

	// Service Accounts
	SATokenExpirationDayLimit int

	// Annotations
	AnnotationCleanupJobBatchSize      int64
	AnnotationMaximumTagsLength        int64
	AlertingAnnotationCleanupSetting   AnnotationCleanupSettings
	DashboardAnnotationCleanupSettings AnnotationCleanupSettings
	APIAnnotationCleanupSettings       AnnotationCleanupSettings

	// GrafanaJavascriptAgent config
	GrafanaJavascriptAgent GrafanaJavascriptAgent

	// Data sources
	DataSourceLimit int

	// SQL Data sources
	SqlDatasourceMaxOpenConnsDefault    int
	SqlDatasourceMaxIdleConnsDefault    int
	SqlDatasourceMaxConnLifetimeDefault int

	// Snapshots
	SnapshotEnabled       bool
	ExternalSnapshotUrl   string
	ExternalSnapshotName  string
	ExternalEnabled       bool
	SnapShotRemoveExpired bool

	SnapshotPublicMode bool

	ErrTemplateName string

	Env string

	ForceMigration bool

	// Analytics
	CheckForGrafanaUpdates              bool
	CheckForPluginUpdates               bool
	ReportingDistributor                string
	ReportingEnabled                    bool
	ApplicationInsightsConnectionString string
	ApplicationInsightsEndpointUrl      string
	FeedbackLinksEnabled                bool

	// Frontend analytics
	GoogleAnalyticsID                   string
	GoogleAnalytics4ID                  string
	GoogleAnalytics4SendManualPageViews bool
	GoogleTagManagerID                  string
	RudderstackDataPlaneURL             string
	RudderstackWriteKey                 string
	RudderstackSDKURL                   string
	RudderstackConfigURL                string
	IntercomSecret                      string

	// AzureAD
	AzureADEnabled         bool
	AzureADSkipOrgRoleSync bool

	// Google
	GoogleAuthEnabled     bool
	GoogleSkipOrgRoleSync bool

	// Gitlab
	GitLabAuthEnabled     bool
	GitLabSkipOrgRoleSync bool

	// Generic OAuth
	GenericOAuthAuthEnabled     bool
	GenericOAuthSkipOrgRoleSync bool

	// LDAP
	LDAPAuthEnabled       bool
	LDAPSkipOrgRoleSync   bool
	LDAPConfigFilePath    string
	LDAPAllowSignup       bool
	LDAPActiveSyncEnabled bool
	LDAPSyncCron          string

	DefaultTheme    string
	DefaultLanguage string
	HomePage        string

	Quota QuotaSettings

	AutoAssignOrg              bool
	AutoAssignOrgId            int
	AutoAssignOrgRole          string
	OAuthSkipOrgRoleUpdateSync bool

	// ExpressionsEnabled specifies whether expressions are enabled.
	ExpressionsEnabled bool

	ImageUploadProvider string

	// LiveMaxConnections is a maximum number of WebSocket connections to
	// Grafana Live ws endpoint (per Grafana server instance). 0 disables
	// Live, -1 means unlimited connections.
	LiveMaxConnections int
	// LiveHAEngine is a type of engine to use to achieve HA with Grafana Live.
	// Zero value means in-memory single node setup.
	LiveHAEngine string
	// LiveHAEngineAddress is a connection address for Live HA engine.
	LiveHAEngineAddress string
	// LiveAllowedOrigins is a set of origins accepted by Live. If not provided
	// then Live uses AppURL as the only allowed origin.
	LiveAllowedOrigins []string

	// GitHub OAuth
	GitHubAuthEnabled     bool
	GitHubSkipOrgRoleSync bool

	// Grafana.com URL, used for OAuth redirect.
	GrafanaComURL string
	// Grafana.com API URL. Can be set separately to GrafanaComURL
	// in case API is not publicly accessible.
	// Defaults to GrafanaComURL setting + "/api" if unset.
	GrafanaComAPIURL string
	// Grafana.com Auth enabled
	GrafanaComAuthEnabled bool
	// GrafanaComSkipOrgRoleSync can be set for
	// letting users set org roles from within Grafana and
	// skip the org roles coming from GrafanaCom
	GrafanaComSkipOrgRoleSync bool

	// Grafana.com Auth enabled through [auth.grafananet] config section
	GrafanaNetAuthEnabled bool

	// Geomap base layer config
	GeomapDefaultBaseLayerConfig map[string]interface{}
	GeomapEnableCustomBaseLayers bool

	// Unified Alerting
	UnifiedAlerting UnifiedAlertingSettings

	// Query history
	QueryHistoryEnabled bool

	Storage StorageSettings

	Search SearchSettings

	SecureSocksDSProxy SecureSocksDSProxySettings

	// SAML Auth
	SAMLAuthEnabled     bool
	SAMLSkipOrgRoleSync bool

	// Okta OAuth
	OktaAuthEnabled     bool
	OktaSkipOrgRoleSync bool

	// OAuth2 Server
	OAuth2ServerEnabled bool

	// OAuth2Server supports the two recommended key types from the RFC https://www.rfc-editor.org/rfc/rfc7518#section-3.1: RS256 and ES256
	OAuth2ServerGeneratedKeyTypeForClient string
	OAuth2ServerAccessTokenLifespan       time.Duration

	// Access Control
	RBACEnabled         bool
	RBACPermissionCache bool
	// Enable Permission validation during role creation and provisioning
	RBACPermissionValidationEnabled bool
	// Reset basic roles permissions on start-up
	RBACResetBasicRoles bool

	// GRPC Server.
	GRPCServerNetwork   string
	GRPCServerAddress   string
	GRPCServerTLSConfig *tls.Config

	CustomResponseHeaders map[string]string

	// This is used to override the general error message shown to users when we want to obfuscate a sensitive backend error
	UserFacingDefaultError string

	// DatabaseInstrumentQueries is used to decide if database queries
	// should be instrumented with metrics, logs and traces.
	// This needs to be on the global object since its used in the
	// sqlstore package and HTTP middlewares.
	DatabaseInstrumentQueries bool
}

TODO move all global vars to this struct

func NewCfg

func NewCfg() *Cfg

func NewCfgFromArgs

func NewCfgFromArgs(args CommandLineArgs) (*Cfg, error)
func (cfg *Cfg) AddChangePasswordLink() bool

AddChangePasswordLink returns if login form is disabled or not since the same intention can be used to hide both features.

func (*Cfg) GetContentDeliveryURL

func (cfg *Cfg) GetContentDeliveryURL(prefix string) string

GetContentDeliveryURL returns full content delivery URL with /<edition>/<version> added to URL

func (*Cfg) Load

func (cfg *Cfg) Load(args CommandLineArgs) error

func (*Cfg) LogConfigSources

func (cfg *Cfg) LogConfigSources()

func (*Cfg) ReadUnifiedAlertingSettings

func (cfg *Cfg) ReadUnifiedAlertingSettings(iniFile *ini.File) error

ReadUnifiedAlertingSettings reads both the `unified_alerting` and `alerting` sections of the configuration while preferring configuration the `alerting` section. It first reads the `unified_alerting` section, then looks for non-defaults on the `alerting` section and prefers those.

func (*Cfg) SectionWithEnvOverrides

func (cfg *Cfg) SectionWithEnvOverrides(s string) *DynamicSection

SectionWithEnvOverrides dynamically overrides keys with environment variables. As a side effect, the value of the setting key will be updated if an environment variable is present.

type CommandLineArgs

type CommandLineArgs struct {
	Config   string
	HomePath string
	Args     []string
}

type DateFormatIntervals

type DateFormatIntervals struct {
	Millisecond string `json:"millisecond"`
	Second      string `json:"second"`
	Minute      string `json:"minute"`
	Hour        string `json:"hour"`
	Day         string `json:"day"`
	Month       string `json:"month"`
	Year        string `json:"year"`
}

type DateFormats

type DateFormats struct {
	FullDate         string              `json:"fullDate"`
	UseBrowserLocale bool                `json:"useBrowserLocale"`
	Interval         DateFormatIntervals `json:"interval"`
	DefaultTimezone  string              `json:"defaultTimezone"`
	DefaultWeekStart string              `json:"defaultWeekStart"`
}

type DynamicSection

type DynamicSection struct {
	Logger log.Logger
	// contains filtered or unexported fields
}

func (*DynamicSection) Key

func (s *DynamicSection) Key(k string) *ini.Key

Key dynamically overrides keys with environment variables. As a side effect, the value of the setting key will be updated if an environment variable is present.

type Expander

type Expander interface {
	SetupExpander(file *ini.File) error
	Expand(string) (string, error)
}

type GlobalQuota

type GlobalQuota struct {
	Org          int64 `target:"org"`
	User         int64 `target:"user"`
	DataSource   int64 `target:"data_source"`
	Dashboard    int64 `target:"dashboard"`
	ApiKey       int64 `target:"api_key"`
	Session      int64 `target:"-"`
	AlertRule    int64 `target:"alert_rule"`
	File         int64 `target:"file"`
	Correlations int64 `target:"correlations"`
}

type GrafanaJavascriptAgent

type GrafanaJavascriptAgent struct {
	Enabled                             bool   `json:"enabled"`
	CustomEndpoint                      string `json:"customEndpoint"`
	EndpointRPS                         int    `json:"-"`
	EndpointBurst                       int    `json:"-"`
	ErrorInstrumentalizationEnabled     bool   `json:"errorInstrumentalizationEnabled"`
	ConsoleInstrumentalizationEnabled   bool   `json:"consoleInstrumentalizationEnabled"`
	WebVitalsInstrumentalizationEnabled bool   `json:"webVitalsInstrumentalizationEnabled"`
	ApiKey                              string `json:"apiKey"`
}

type KeyValue

type KeyValue interface {
	// Key returns pair's key.
	Key() string
	// Value returns pair's value.
	Value() string

	// MustString returns the value's string representation
	// If empty, then it returns the given default.
	MustString(defaultVal string) string
	// MustBool returns the value's boolean representation
	// Otherwise returns the given default.
	MustBool(defaultVal bool) bool
	// MustDuration returns the value's time.Duration
	// representation. Otherwise returns the given default.
	MustDuration(defaultVal time.Duration) time.Duration
}

KeyValue represents a settings key-value for a given pair of section and key.

type OSSImpl

type OSSImpl struct {
	Cfg *Cfg
}

func ProvideProvider

func ProvideProvider(cfg *Cfg) *OSSImpl

func (*OSSImpl) Current

func (o *OSSImpl) Current() SettingsBag

func (*OSSImpl) CurrentVerbose

func (o *OSSImpl) CurrentVerbose() VerboseSettingsBag

func (*OSSImpl) IsFeatureToggleEnabled

func (o *OSSImpl) IsFeatureToggleEnabled(name string) bool

func (*OSSImpl) KeyValue

func (o *OSSImpl) KeyValue(section, key string) KeyValue

func (*OSSImpl) RegisterReloadHandler

func (*OSSImpl) RegisterReloadHandler(string, ReloadHandler)

func (*OSSImpl) Section

func (o *OSSImpl) Section(section string) Section

func (OSSImpl) Update

type OrgQuota

type OrgQuota struct {
	User       int64 `target:"org_user"`
	DataSource int64 `target:"data_source"`
	Dashboard  int64 `target:"dashboard"`
	ApiKey     int64 `target:"api_key"`
	AlertRule  int64 `target:"alert_rule"`
}

type PluginSettings

type PluginSettings map[string]map[string]string

PluginSettings maps plugin id to map of key/value settings.

type Provider

type Provider interface {
	// Current returns a SettingsBag with a static copy of
	// the current configured pairs of key/values for each
	// configuration section.
	Current() SettingsBag

	CurrentVerbose() VerboseSettingsBag

	// Update receives a SettingsBag with the pairs of key/values
	// to be updated per section and a SettingsRemovals with the
	// section keys to be removed.
	Update(updates SettingsBag, removals SettingsRemovals) error
	// KeyValue returns a key-value abstraction
	// for the given pair of section and key.
	KeyValue(section, key string) KeyValue
	// Section returns a settings section
	// abstraction for the given section name.
	Section(section string) Section
	// RegisterReloadHandler registers a handler for validation and reload
	// of configuration updates tied to a specific section
	RegisterReloadHandler(section string, handler ReloadHandler)
}

Provider is a settings provider abstraction with thread-safety and runtime updates.

type QuotaSettings

type QuotaSettings struct {
	Enabled bool
	Org     OrgQuota
	User    UserQuota
	Global  GlobalQuota
}

type ReloadHandler

type ReloadHandler interface {
	// Reload handles reloading of configuration changes.
	Reload(section Section) error

	// Validate validates the configuration, if the validation
	// fails the configuration will not be updated neither reloaded.
	Validate(section Section) error
}

ReloadHandler defines the expected behaviour from a service that have support for configuration reloads.

type RemoteCacheOptions

type RemoteCacheOptions struct {
	Name       string
	ConnStr    string
	Prefix     string
	Encryption bool
}

type Scheme

type Scheme string
const (
	HTTPScheme   Scheme = "http"
	HTTPSScheme  Scheme = "https"
	HTTP2Scheme  Scheme = "h2"
	SocketScheme Scheme = "socket"
)

type SearchSettings

type SearchSettings struct {
	FullReindexInterval       time.Duration
	IndexUpdateInterval       time.Duration
	DashboardLoadingBatchSize int
}

type Section

type Section interface {
	// KeyValue returns a key-value
	// abstraction for the given key.
	KeyValue(key string) KeyValue
}

Section is a settings section copy with all of its pairs of keys-values.

type SecureSocksDSProxySettings

type SecureSocksDSProxySettings struct {
	Enabled      bool
	ShowUI       bool
	ClientCert   string
	ClientKey    string
	RootCA       string
	ProxyAddress string
	ServerName   string
}

type SettingsBag

type SettingsBag map[string]map[string]string

type SettingsRemovals

type SettingsRemovals map[string][]string

type SmtpSettings

type SmtpSettings struct {
	Enabled        bool
	Host           string
	User           string
	Password       string
	CertFile       string
	KeyFile        string
	FromAddress    string
	FromName       string
	EhloIdentity   string
	StartTLSPolicy string
	SkipVerify     bool

	SendWelcomeEmailOnSignUp bool
	TemplatesPatterns        []string
	ContentTypes             []string
}

type StorageSettings

type StorageSettings struct {
	AllowUnsanitizedSvgUpload bool
}

type UnifiedAlertingReservedLabelSettings

type UnifiedAlertingReservedLabelSettings struct {
	DisabledLabels map[string]struct{}
}

func (*UnifiedAlertingReservedLabelSettings) IsReservedLabelDisabled

func (u *UnifiedAlertingReservedLabelSettings) IsReservedLabelDisabled(label string) bool

IsReservedLabelDisabled returns true if UnifiedAlertingReservedLabelSettings.DisabledLabels contains the given reserved label.

type UnifiedAlertingScreenshotSettings

type UnifiedAlertingScreenshotSettings struct {
	Capture                    bool
	CaptureTimeout             time.Duration
	MaxConcurrentScreenshots   int64
	UploadExternalImageStorage bool
}

type UnifiedAlertingSettings

type UnifiedAlertingSettings struct {
	AdminConfigPollInterval        time.Duration
	AlertmanagerConfigPollInterval time.Duration
	HAListenAddr                   string
	HAAdvertiseAddr                string
	HAPeers                        []string
	HAPeerTimeout                  time.Duration
	HAGossipInterval               time.Duration
	HAPushPullInterval             time.Duration
	HALabel                        string
	HARedisAddr                    string
	HARedisPeerName                string
	HARedisPrefix                  string
	HARedisUsername                string
	HARedisPassword                string
	HARedisDB                      int
	MaxAttempts                    int64
	MinInterval                    time.Duration
	EvaluationTimeout              time.Duration
	ExecuteAlerts                  bool
	DefaultConfiguration           string
	Enabled                        *bool // determines whether unified alerting is enabled. If it is nil then user did not define it and therefore its value will be determined during migration. Services should not use it directly.
	DisabledOrgs                   map[int64]struct{}
	// BaseInterval interval of time the scheduler updates the rules and evaluates rules.
	// Only for internal use and not user configuration.
	BaseInterval time.Duration
	// DefaultRuleEvaluationInterval default interval between evaluations of a rule.
	DefaultRuleEvaluationInterval time.Duration
	Screenshots                   UnifiedAlertingScreenshotSettings
	ReservedLabels                UnifiedAlertingReservedLabelSettings
	StateHistory                  UnifiedAlertingStateHistorySettings
	// MaxStateSaveConcurrency controls the number of goroutines (per rule) that can save alert state in parallel.
	MaxStateSaveConcurrency int
}

func (*UnifiedAlertingSettings) IsEnabled

func (u *UnifiedAlertingSettings) IsEnabled() bool

IsEnabled returns true if UnifiedAlertingSettings.Enabled is either nil or true. It hides the implementation details of the Enabled and simplifies its usage.

type UnifiedAlertingStateHistorySettings

type UnifiedAlertingStateHistorySettings struct {
	Enabled       bool
	Backend       string
	LokiRemoteURL string
	LokiReadURL   string
	LokiWriteURL  string
	LokiTenantID  string
	// LokiBasicAuthUsername and LokiBasicAuthPassword are used for basic auth
	// if one of them is set.
	LokiBasicAuthPassword string
	LokiBasicAuthUsername string
	MultiPrimary          string
	MultiSecondaries      []string
	ExternalLabels        map[string]string
}

type UserQuota

type UserQuota struct {
	Org int64 `target:"org_user"`
}

type ValidationError

type ValidationError struct {
	Errors []error
}

func (ValidationError) Error

func (v ValidationError) Error() string

type VerboseSettingsBag

type VerboseSettingsBag map[string]map[string]map[VerboseSourceType]string

type VerboseSourceType

type VerboseSourceType string
const (
	DB     VerboseSourceType = "db"
	System VerboseSourceType = "system"
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL