Documentation
¶
Index ¶
- Constants
- Variables
- type AdminConfigurationStore
- type AdminConfigurationStoreMock
- func (_m *AdminConfigurationStoreMock) DeleteAdminConfiguration(orgID int64) error
- func (_m *AdminConfigurationStoreMock) EXPECT() *AdminConfigurationStoreMock_Expecter
- func (_m *AdminConfigurationStoreMock) GetAdminConfiguration(orgID int64) (*models.AdminConfiguration, error)
- func (_m *AdminConfigurationStoreMock) GetAdminConfigurations() ([]*models.AdminConfiguration, error)
- func (_m *AdminConfigurationStoreMock) UpdateAdminConfiguration(_a0 UpdateAdminConfigurationCmd) error
- type AdminConfigurationStoreMock_DeleteAdminConfiguration_Call
- func (_c *AdminConfigurationStoreMock_DeleteAdminConfiguration_Call) Return(_a0 error) *AdminConfigurationStoreMock_DeleteAdminConfiguration_Call
- func (_c *AdminConfigurationStoreMock_DeleteAdminConfiguration_Call) Run(run func(orgID int64)) *AdminConfigurationStoreMock_DeleteAdminConfiguration_Call
- type AdminConfigurationStoreMock_Expecter
- func (_e *AdminConfigurationStoreMock_Expecter) DeleteAdminConfiguration(orgID any) *AdminConfigurationStoreMock_DeleteAdminConfiguration_Call
- func (_e *AdminConfigurationStoreMock_Expecter) GetAdminConfiguration(orgID any) *AdminConfigurationStoreMock_GetAdminConfiguration_Call
- func (_e *AdminConfigurationStoreMock_Expecter) GetAdminConfigurations() *AdminConfigurationStoreMock_GetAdminConfigurations_Call
- func (_e *AdminConfigurationStoreMock_Expecter) UpdateAdminConfiguration(_a0 any) *AdminConfigurationStoreMock_UpdateAdminConfiguration_Call
- type AdminConfigurationStoreMock_GetAdminConfiguration_Call
- func (_c *AdminConfigurationStoreMock_GetAdminConfiguration_Call) Return(_a0 *models.AdminConfiguration, _a1 error) *AdminConfigurationStoreMock_GetAdminConfiguration_Call
- func (_c *AdminConfigurationStoreMock_GetAdminConfiguration_Call) Run(run func(orgID int64)) *AdminConfigurationStoreMock_GetAdminConfiguration_Call
- type AdminConfigurationStoreMock_GetAdminConfigurations_Call
- func (_c *AdminConfigurationStoreMock_GetAdminConfigurations_Call) Return(_a0 []*models.AdminConfiguration, _a1 error) *AdminConfigurationStoreMock_GetAdminConfigurations_Call
- func (_c *AdminConfigurationStoreMock_GetAdminConfigurations_Call) Run(run func()) *AdminConfigurationStoreMock_GetAdminConfigurations_Call
- type AdminConfigurationStoreMock_UpdateAdminConfiguration_Call
- func (_c *AdminConfigurationStoreMock_UpdateAdminConfiguration_Call) Return(_a0 error) *AdminConfigurationStoreMock_UpdateAdminConfiguration_Call
- func (_c *AdminConfigurationStoreMock_UpdateAdminConfiguration_Call) Run(run func(_a0 UpdateAdminConfigurationCmd)) *AdminConfigurationStoreMock_UpdateAdminConfiguration_Call
- type AlertingStore
- type DBstore
- func (st DBstore) Count(ctx context.Context, orgID int64) (int64, error)
- func (st DBstore) CountInFolders(ctx context.Context, orgID int64, folderUIDs []string, u identity.Requester) (int64, error)
- func (st DBstore) DeleteAdminConfiguration(orgID int64) error
- func (st DBstore) DeleteAlertInstances(ctx context.Context, keys ...models.AlertInstanceKey) error
- func (st DBstore) DeleteAlertInstancesByRule(ctx context.Context, key models.AlertRuleKey) error
- func (st DBstore) DeleteAlertRulesByUID(ctx context.Context, orgID int64, ruleUID ...string) error
- func (st DBstore) DeleteExpiredImages(ctx context.Context) (int64, error)
- func (st DBstore) DeleteInFolders(ctx context.Context, orgID int64, folderUIDs []string, user identity.Requester) error
- func (st DBstore) DeleteProvenance(ctx context.Context, o models.Provisionable, org int64) error
- func (st DBstore) FetchOrgIds(ctx context.Context) ([]int64, error)
- func (st DBstore) FullSync(ctx context.Context, instances []models.AlertInstance) error
- func (st *DBstore) GetAdminConfiguration(orgID int64) (*ngmodels.AdminConfiguration, error)
- func (st DBstore) GetAdminConfigurations() ([]*ngmodels.AdminConfiguration, error)
- func (st DBstore) GetAlertRuleByUID(ctx context.Context, query *ngmodels.GetAlertRuleByUIDQuery) (result *ngmodels.AlertRule, err error)
- func (st DBstore) GetAlertRulesForScheduling(ctx context.Context, query *ngmodels.GetAlertRulesForSchedulingQuery) error
- func (st DBstore) GetAlertRulesGroupByRuleUID(ctx context.Context, query *ngmodels.GetAlertRulesGroupByRuleUIDQuery) (result []*ngmodels.AlertRule, err error)
- func (st DBstore) GetAlertRulesKeysForScheduling(ctx context.Context) ([]ngmodels.AlertRuleKeyWithVersion, error)
- func (st *DBstore) GetAllLatestAlertmanagerConfiguration(ctx context.Context) ([]*models.AlertConfiguration, error)
- func (st *DBstore) GetAppliedConfigurations(ctx context.Context, orgID int64, limit int) ([]*models.HistoricAlertConfiguration, error)
- func (st *DBstore) GetHistoricalConfiguration(ctx context.Context, orgID int64, id int64) (*models.HistoricAlertConfiguration, error)
- func (st DBstore) GetImage(ctx context.Context, token string) (*models.Image, error)
- func (st DBstore) GetImageByURL(ctx context.Context, url string) (*models.Image, error)
- func (st DBstore) GetImages(ctx context.Context, tokens []string) ([]models.Image, []string, error)
- func (st *DBstore) GetLatestAlertmanagerConfiguration(ctx context.Context, orgID int64) (result *models.AlertConfiguration, err error)
- func (st DBstore) GetNamespaceByUID(ctx context.Context, uid string, orgID int64, user identity.Requester) (*folder.Folder, error)
- func (st DBstore) GetNamespacesByRuleUID(ctx context.Context, orgID int64, uids ...string) (map[string]string, error)
- func (st DBstore) GetOrgs(ctx context.Context) ([]int64, error)
- func (st DBstore) GetProvenance(ctx context.Context, o models.Provisionable, org int64) (models.Provenance, error)
- func (st DBstore) GetProvenances(ctx context.Context, org int64, resourceType string) (map[string]models.Provenance, error)
- func (st DBstore) GetRuleGroupInterval(ctx context.Context, orgID int64, namespaceUID string, ruleGroup string) (int64, error)
- func (st DBstore) GetUserVisibleNamespaces(ctx context.Context, orgID int64, user identity.Requester) (map[string]*folder.Folder, error)
- func (st *DBstore) InTransaction(ctx context.Context, f func(ctx context.Context) error) error
- func (st DBstore) IncreaseVersionForAllRulesInNamespace(ctx context.Context, orgID int64, namespaceUID string) ([]ngmodels.AlertRuleKeyWithVersion, error)
- func (st DBstore) InsertAlertRules(ctx context.Context, rules []ngmodels.AlertRule) ([]ngmodels.AlertRuleKeyWithId, error)
- func (st DBstore) Kind() string
- func (st DBstore) ListAlertInstances(ctx context.Context, cmd *models.ListAlertInstancesQuery) (result []*models.AlertInstance, err error)
- func (st DBstore) ListAlertRules(ctx context.Context, query *ngmodels.ListAlertRulesQuery) (result ngmodels.RulesGroup, err error)
- func (st DBstore) ListNotificationSettings(ctx context.Context, q ngmodels.ListNotificationSettingsQuery) (map[ngmodels.AlertRuleKey][]ngmodels.NotificationSettings, error)
- func (st *DBstore) MarkConfigurationAsApplied(ctx context.Context, cmd *models.MarkConfigurationAsAppliedCmd) error
- func (st DBstore) RenameReceiverInNotificationSettings(ctx context.Context, orgID int64, oldReceiver, newReceiver string) (int, error)
- func (st DBstore) SaveAlertInstance(ctx context.Context, alertInstance models.AlertInstance) error
- func (st DBstore) SaveAlertmanagerConfiguration(ctx context.Context, cmd *models.SaveAlertmanagerConfigurationCmd) error
- func (st DBstore) SaveAlertmanagerConfigurationWithCallback(ctx context.Context, cmd *models.SaveAlertmanagerConfigurationCmd, ...) error
- func (st DBstore) SaveImage(ctx context.Context, img *models.Image) error
- func (st DBstore) SetProvenance(ctx context.Context, o models.Provisionable, org int64, p models.Provenance) error
- func (st DBstore) URLExists(ctx context.Context, url string) (bool, error)
- func (st DBstore) UpdateAdminConfiguration(cmd UpdateAdminConfigurationCmd) error
- func (st DBstore) UpdateAlertRules(ctx context.Context, rules []ngmodels.UpdateRule) error
- func (st *DBstore) UpdateAlertmanagerConfiguration(ctx context.Context, cmd *models.SaveAlertmanagerConfigurationCmd) error
- type FakeAdminConfigStore
- func (f *FakeAdminConfigStore) DeleteAdminConfiguration(orgID int64) error
- func (f *FakeAdminConfigStore) GetAdminConfiguration(orgID int64) (*models.AdminConfiguration, error)
- func (f *FakeAdminConfigStore) GetAdminConfigurations() ([]*models.AdminConfiguration, error)
- func (f *FakeAdminConfigStore) UpdateAdminConfiguration(cmd UpdateAdminConfigurationCmd) error
- type FakeImageStore
- func (s *FakeImageStore) GetImage(_ context.Context, token string) (*models.Image, error)
- func (s *FakeImageStore) GetImageByURL(_ context.Context, url string) (*models.Image, error)
- func (s *FakeImageStore) GetImages(_ context.Context, tokens []string) ([]models.Image, []string, error)
- func (s *FakeImageStore) SaveImage(_ context.Context, image *models.Image) error
- func (s *FakeImageStore) URLExists(_ context.Context, url string) (bool, error)
- type GroupDelta
- func CalculateChanges(ctx context.Context, ruleReader RuleReader, groupKey models.AlertRuleGroupKey, ...) (*GroupDelta, error)
- func CalculateRuleCreate(ctx context.Context, ruleReader RuleReader, rule *models.AlertRule) (*GroupDelta, error)
- func CalculateRuleDelete(ctx context.Context, ruleReader RuleReader, ruleKey models.AlertRuleKey) (*GroupDelta, error)
- func CalculateRuleGroupDelete(ctx context.Context, ruleReader RuleReader, groupKey models.AlertRuleGroupKey) (*GroupDelta, error)
- func CalculateRuleUpdate(ctx context.Context, ruleReader RuleReader, ...) (*GroupDelta, error)
- func UpdateCalculatedRuleFields(ch *GroupDelta) *GroupDelta
- type ImageAdminStore
- type ImageStore
- type Optimization
- type OrgStore
- type RuleDelta
- type RuleReader
- type SaveCallback
- type UpdateAdminConfigurationCmd
Constants ¶
const AlertDefinitionMaxTitleLength = 190
AlertDefinitionMaxTitleLength is the maximum length of the alert definition title
const AlertRuleMaxRuleGroupNameLength = 190
AlertRuleMaxRuleGroupNameLength is the maximum length of the alert rule group name
const AlertRuleMaxTitleLength = 190
AlertRuleMaxTitleLength is the maximum length of the alert rule title
Variables ¶
var ( // ErrNoAlertmanagerConfiguration is an error for when no alertmanager configuration is found. ErrNoAlertmanagerConfiguration = fmt.Errorf("could not find an Alertmanager configuration") // ErrVersionLockedObjectNotFound is returned when an object is not // found using the current hash. ErrVersionLockedObjectNotFound = fmt.Errorf("could not find object using provided id and hash") // ConfigRecordsLimit defines the limit of how many alertmanager configuration versions // should be stored in the database for each organization including the current one. // Has to be > 0 ConfigRecordsLimit int = 100 )
var AlertRuleFieldsToIgnoreInDiff = [...]string{"ID", "Version", "Updated"}
AlertRuleFieldsToIgnoreInDiff contains fields that are ignored when calculating the RuleDelta.Diff.
var ( // ErrNoAdminConfiguration is an error for when no admin configuration is found. ErrNoAdminConfiguration = fmt.Errorf("no admin configuration available") )
var (
ErrOptimisticLock = errors.New("version conflict while updating a record in the database with optimistic locking")
)
var GenerateNewAlertRuleUID = func(sess *db.Session, orgID int64, ruleTitle string) (string, error) { for i := 0; i < 3; i++ { uid := util.GenerateShortUID() exists, err := sess.Where("org_id=? AND uid=?", orgID, uid).Get(&ngmodels.AlertRule{}) if err != nil { return "", err } if !exists { return uid, nil } } return "", ngmodels.ErrAlertRuleFailedGenerateUniqueUID }
GenerateNewAlertRuleUID generates a unique UID for a rule. This is set as a variable so that the tests can override it. The ruleTitle is only used by the mocked functions.
var TimeNow = time.Now
TimeNow makes it possible to test usage of time
Functions ¶
This section is empty.
Types ¶
type AdminConfigurationStore ¶
type AdminConfigurationStore interface { GetAdminConfiguration(orgID int64) (*ngmodels.AdminConfiguration, error) GetAdminConfigurations() ([]*ngmodels.AdminConfiguration, error) DeleteAdminConfiguration(orgID int64) error UpdateAdminConfiguration(UpdateAdminConfigurationCmd) error }
type AdminConfigurationStoreMock ¶
AdminConfigurationStoreMock is an autogenerated mock type for the AdminConfigurationStore type
func (*AdminConfigurationStoreMock) DeleteAdminConfiguration ¶
func (_m *AdminConfigurationStoreMock) DeleteAdminConfiguration(orgID int64) error
DeleteAdminConfiguration provides a mock function with given fields: orgID
func (*AdminConfigurationStoreMock) EXPECT ¶
func (_m *AdminConfigurationStoreMock) EXPECT() *AdminConfigurationStoreMock_Expecter
func (*AdminConfigurationStoreMock) GetAdminConfiguration ¶
func (_m *AdminConfigurationStoreMock) GetAdminConfiguration(orgID int64) (*models.AdminConfiguration, error)
GetAdminConfiguration provides a mock function with given fields: orgID
func (*AdminConfigurationStoreMock) GetAdminConfigurations ¶
func (_m *AdminConfigurationStoreMock) GetAdminConfigurations() ([]*models.AdminConfiguration, error)
GetAdminConfigurations provides a mock function with given fields:
func (*AdminConfigurationStoreMock) UpdateAdminConfiguration ¶
func (_m *AdminConfigurationStoreMock) UpdateAdminConfiguration(_a0 UpdateAdminConfigurationCmd) error
UpdateAdminConfiguration provides a mock function with given fields: _a0
type AdminConfigurationStoreMock_DeleteAdminConfiguration_Call ¶
AdminConfigurationStoreMock_DeleteAdminConfiguration_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DeleteAdminConfiguration'
func (*AdminConfigurationStoreMock_DeleteAdminConfiguration_Call) Run ¶
func (_c *AdminConfigurationStoreMock_DeleteAdminConfiguration_Call) Run(run func(orgID int64)) *AdminConfigurationStoreMock_DeleteAdminConfiguration_Call
type AdminConfigurationStoreMock_Expecter ¶
type AdminConfigurationStoreMock_Expecter struct {
// contains filtered or unexported fields
}
func (*AdminConfigurationStoreMock_Expecter) DeleteAdminConfiguration ¶
func (_e *AdminConfigurationStoreMock_Expecter) DeleteAdminConfiguration(orgID any) *AdminConfigurationStoreMock_DeleteAdminConfiguration_Call
DeleteAdminConfiguration is a helper method to define mock.On call
- orgID int64
func (*AdminConfigurationStoreMock_Expecter) GetAdminConfiguration ¶
func (_e *AdminConfigurationStoreMock_Expecter) GetAdminConfiguration(orgID any) *AdminConfigurationStoreMock_GetAdminConfiguration_Call
GetAdminConfiguration is a helper method to define mock.On call
- orgID int64
func (*AdminConfigurationStoreMock_Expecter) GetAdminConfigurations ¶
func (_e *AdminConfigurationStoreMock_Expecter) GetAdminConfigurations() *AdminConfigurationStoreMock_GetAdminConfigurations_Call
GetAdminConfigurations is a helper method to define mock.On call
func (*AdminConfigurationStoreMock_Expecter) UpdateAdminConfiguration ¶
func (_e *AdminConfigurationStoreMock_Expecter) UpdateAdminConfiguration(_a0 any) *AdminConfigurationStoreMock_UpdateAdminConfiguration_Call
UpdateAdminConfiguration is a helper method to define mock.On call
- _a0 UpdateAdminConfigurationCmd
type AdminConfigurationStoreMock_GetAdminConfiguration_Call ¶
AdminConfigurationStoreMock_GetAdminConfiguration_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetAdminConfiguration'
func (*AdminConfigurationStoreMock_GetAdminConfiguration_Call) Run ¶
func (_c *AdminConfigurationStoreMock_GetAdminConfiguration_Call) Run(run func(orgID int64)) *AdminConfigurationStoreMock_GetAdminConfiguration_Call
type AdminConfigurationStoreMock_GetAdminConfigurations_Call ¶
AdminConfigurationStoreMock_GetAdminConfigurations_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetAdminConfigurations'
func (*AdminConfigurationStoreMock_GetAdminConfigurations_Call) Return ¶
func (_c *AdminConfigurationStoreMock_GetAdminConfigurations_Call) Return(_a0 []*models.AdminConfiguration, _a1 error) *AdminConfigurationStoreMock_GetAdminConfigurations_Call
func (*AdminConfigurationStoreMock_GetAdminConfigurations_Call) Run ¶
func (_c *AdminConfigurationStoreMock_GetAdminConfigurations_Call) Run(run func()) *AdminConfigurationStoreMock_GetAdminConfigurations_Call
type AdminConfigurationStoreMock_UpdateAdminConfiguration_Call ¶
AdminConfigurationStoreMock_UpdateAdminConfiguration_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'UpdateAdminConfiguration'
type AlertingStore ¶
type AlertingStore interface { GetLatestAlertmanagerConfiguration(ctx context.Context, orgID int64) (*models.AlertConfiguration, error) GetAllLatestAlertmanagerConfiguration(ctx context.Context) ([]*models.AlertConfiguration, error) SaveAlertmanagerConfiguration(ctx context.Context, cmd *models.SaveAlertmanagerConfigurationCmd) error SaveAlertmanagerConfigurationWithCallback(ctx context.Context, cmd *models.SaveAlertmanagerConfigurationCmd, callback SaveCallback) error UpdateAlertmanagerConfiguration(ctx context.Context, cmd *models.SaveAlertmanagerConfigurationCmd) error MarkConfigurationAsApplied(ctx context.Context, cmd *models.MarkConfigurationAsAppliedCmd) error GetAppliedConfigurations(ctx context.Context, orgID int64, limit int) ([]*models.HistoricAlertConfiguration, error) GetHistoricalConfiguration(ctx context.Context, orgID int64, id int64) (*models.HistoricAlertConfiguration, error) }
AlertingStore is the database interface used by the Alertmanager service.
type DBstore ¶
type DBstore struct { Cfg setting.UnifiedAlertingSettings FeatureToggles featuremgmt.FeatureToggles SQLStore db.DB Logger log.Logger FolderService folder.Service DashboardService dashboards.DashboardService AccessControl accesscontrol.AccessControl }
DBstore stores the alert definitions and instances in the database.
func ProvideDBStore ¶
func ProvideDBStore( cfg *setting.Cfg, featureToggles featuremgmt.FeatureToggles, sqlstore db.DB, folderService folder.Service, dashboards dashboards.DashboardService, ac accesscontrol.AccessControl) (*DBstore, error)
func (DBstore) Count ¶
Count returns either the number of the alert rules under a specific org (if orgID is not zero) or the number of all the alert rules
func (DBstore) CountInFolders ¶
func (st DBstore) CountInFolders(ctx context.Context, orgID int64, folderUIDs []string, u identity.Requester) (int64, error)
CountInFolder is a handler for retrieving the number of alert rules of specific organisation associated with a given namespace (parent folder).
func (DBstore) DeleteAdminConfiguration ¶
func (DBstore) DeleteAlertInstances ¶
DeleteAlertInstances deletes instances with the provided keys in a single transaction.
func (DBstore) DeleteAlertInstancesByRule ¶
func (DBstore) DeleteAlertRulesByUID ¶
DeleteAlertRulesByUID is a handler for deleting an alert rule.
func (DBstore) DeleteExpiredImages ¶
func (DBstore) DeleteInFolders ¶
func (st DBstore) DeleteInFolders(ctx context.Context, orgID int64, folderUIDs []string, user identity.Requester) error
DeleteInFolder deletes the rules contained in a given folder along with their associated data.
func (DBstore) DeleteProvenance ¶
DeleteProvenance deletes the provenance record from the table
func (*DBstore) GetAdminConfiguration ¶
func (st *DBstore) GetAdminConfiguration(orgID int64) (*ngmodels.AdminConfiguration, error)
func (DBstore) GetAdminConfigurations ¶
func (st DBstore) GetAdminConfigurations() ([]*ngmodels.AdminConfiguration, error)
func (DBstore) GetAlertRuleByUID ¶
func (st DBstore) GetAlertRuleByUID(ctx context.Context, query *ngmodels.GetAlertRuleByUIDQuery) (result *ngmodels.AlertRule, err error)
GetAlertRuleByUID is a handler for retrieving an alert rule from that database by its UID and organisation ID. It returns ngmodels.ErrAlertRuleNotFound if no alert rule is found for the provided ID.
func (DBstore) GetAlertRulesForScheduling ¶
func (st DBstore) GetAlertRulesForScheduling(ctx context.Context, query *ngmodels.GetAlertRulesForSchedulingQuery) error
GetAlertRulesForScheduling returns a short version of all alert rules except those that belong to an excluded list of organizations
func (DBstore) GetAlertRulesGroupByRuleUID ¶
func (st DBstore) GetAlertRulesGroupByRuleUID(ctx context.Context, query *ngmodels.GetAlertRulesGroupByRuleUIDQuery) (result []*ngmodels.AlertRule, err error)
GetAlertRulesGroupByRuleUID is a handler for retrieving a group of alert rules from that database by UID and organisation ID of one of rules that belong to that group.
func (DBstore) GetAlertRulesKeysForScheduling ¶
func (*DBstore) GetAllLatestAlertmanagerConfiguration ¶
func (st *DBstore) GetAllLatestAlertmanagerConfiguration(ctx context.Context) ([]*models.AlertConfiguration, error)
GetAllLatestAlertmanagerConfiguration returns the latest configuration of every organization
func (*DBstore) GetAppliedConfigurations ¶
func (st *DBstore) GetAppliedConfigurations(ctx context.Context, orgID int64, limit int) ([]*models.HistoricAlertConfiguration, error)
GetAppliedConfigurations returns all configurations that have been marked as applied, ordered newest -> oldest by id.
func (*DBstore) GetHistoricalConfiguration ¶
func (st *DBstore) GetHistoricalConfiguration(ctx context.Context, orgID int64, id int64) (*models.HistoricAlertConfiguration, error)
GetHistoricalConfiguration returns a single historical configuration based on provided org and id.
func (DBstore) GetImageByURL ¶
func (*DBstore) GetLatestAlertmanagerConfiguration ¶
func (st *DBstore) GetLatestAlertmanagerConfiguration(ctx context.Context, orgID int64) (result *models.AlertConfiguration, err error)
GetLatestAlertmanagerConfiguration returns the lastest version of the alertmanager configuration. It returns ErrNoAlertmanagerConfiguration if no configuration is found.
func (DBstore) GetNamespaceByUID ¶
func (st DBstore) GetNamespaceByUID(ctx context.Context, uid string, orgID int64, user identity.Requester) (*folder.Folder, error)
GetNamespaceByUID is a handler for retrieving a namespace by its UID. Alerting rules follow a Grafana folder-like structure which we call namespaces.
func (DBstore) GetNamespacesByRuleUID ¶
func (st DBstore) GetNamespacesByRuleUID(ctx context.Context, orgID int64, uids ...string) (map[string]string, error)
GetNamespacesByRuleUID returns a map of rule UIDs to their namespace UID.
func (DBstore) GetProvenance ¶
func (st DBstore) GetProvenance(ctx context.Context, o models.Provisionable, org int64) (models.Provenance, error)
GetProvenance gets the provenance status for a provisionable object.
func (DBstore) GetProvenances ¶
func (st DBstore) GetProvenances(ctx context.Context, org int64, resourceType string) (map[string]models.Provenance, error)
GetProvenance gets the provenance status for a provisionable object.
func (DBstore) GetRuleGroupInterval ¶
func (DBstore) GetUserVisibleNamespaces ¶
func (st DBstore) GetUserVisibleNamespaces(ctx context.Context, orgID int64, user identity.Requester) (map[string]*folder.Folder, error)
GetUserVisibleNamespaces returns the folders that are visible to the user
func (*DBstore) InTransaction ¶
func (DBstore) IncreaseVersionForAllRulesInNamespace ¶
func (st DBstore) IncreaseVersionForAllRulesInNamespace(ctx context.Context, orgID int64, namespaceUID string) ([]ngmodels.AlertRuleKeyWithVersion, error)
IncreaseVersionForAllRulesInNamespace Increases version for all rules that have specified namespace. Returns all rules that belong to the namespace
func (DBstore) InsertAlertRules ¶
func (st DBstore) InsertAlertRules(ctx context.Context, rules []ngmodels.AlertRule) ([]ngmodels.AlertRuleKeyWithId, error)
InsertAlertRules is a handler for creating/updating alert rules. Returns the UID and ID of rules that were created in the same order as the input rules.
func (DBstore) ListAlertInstances ¶
func (st DBstore) ListAlertInstances(ctx context.Context, cmd *models.ListAlertInstancesQuery) (result []*models.AlertInstance, err error)
ListAlertInstances is a handler for retrieving alert instances within specific organisation based on various filters.
func (DBstore) ListAlertRules ¶
func (st DBstore) ListAlertRules(ctx context.Context, query *ngmodels.ListAlertRulesQuery) (result ngmodels.RulesGroup, err error)
ListAlertRules is a handler for retrieving alert rules of specific organisation.
func (DBstore) ListNotificationSettings ¶
func (st DBstore) ListNotificationSettings(ctx context.Context, q ngmodels.ListNotificationSettingsQuery) (map[ngmodels.AlertRuleKey][]ngmodels.NotificationSettings, error)
ListNotificationSettings fetches all notification settings for given organization
func (*DBstore) MarkConfigurationAsApplied ¶
func (st *DBstore) MarkConfigurationAsApplied(ctx context.Context, cmd *models.MarkConfigurationAsAppliedCmd) error
MarkConfigurationAsApplied sets the `last_applied` field of the last config with the given hash to the current UNIX timestamp.
func (DBstore) RenameReceiverInNotificationSettings ¶
func (DBstore) SaveAlertInstance ¶
SaveAlertInstance is a handler for saving a new alert instance.
func (DBstore) SaveAlertmanagerConfiguration ¶
func (st DBstore) SaveAlertmanagerConfiguration(ctx context.Context, cmd *models.SaveAlertmanagerConfigurationCmd) error
SaveAlertmanagerConfiguration creates an alertmanager configuration.
func (DBstore) SaveAlertmanagerConfigurationWithCallback ¶
func (st DBstore) SaveAlertmanagerConfigurationWithCallback(ctx context.Context, cmd *models.SaveAlertmanagerConfigurationCmd, callback SaveCallback) error
SaveAlertmanagerConfigurationWithCallback creates an alertmanager configuration version and then executes a callback. If the callback results in error it rolls back the transaction.
func (DBstore) SetProvenance ¶
func (st DBstore) SetProvenance(ctx context.Context, o models.Provisionable, org int64, p models.Provenance) error
SetProvenance changes the provenance status for a provisionable object.
func (DBstore) UpdateAdminConfiguration ¶
func (st DBstore) UpdateAdminConfiguration(cmd UpdateAdminConfigurationCmd) error
func (DBstore) UpdateAlertRules ¶
UpdateAlertRules is a handler for updating alert rules.
func (*DBstore) UpdateAlertmanagerConfiguration ¶
func (st *DBstore) UpdateAlertmanagerConfiguration(ctx context.Context, cmd *models.SaveAlertmanagerConfigurationCmd) error
UpdateAlertmanagerConfiguration replaces an alertmanager configuration with optimistic locking. It assumes that an existing revision of the configuration exists in the store, and will return an error otherwise.
type FakeAdminConfigStore ¶
type FakeAdminConfigStore struct { Configs map[int64]*models.AdminConfiguration // contains filtered or unexported fields }
func NewFakeAdminConfigStore ¶
func NewFakeAdminConfigStore(t *testing.T) *FakeAdminConfigStore
func (*FakeAdminConfigStore) DeleteAdminConfiguration ¶
func (f *FakeAdminConfigStore) DeleteAdminConfiguration(orgID int64) error
func (*FakeAdminConfigStore) GetAdminConfiguration ¶
func (f *FakeAdminConfigStore) GetAdminConfiguration(orgID int64) (*models.AdminConfiguration, error)
func (*FakeAdminConfigStore) GetAdminConfigurations ¶
func (f *FakeAdminConfigStore) GetAdminConfigurations() ([]*models.AdminConfiguration, error)
func (*FakeAdminConfigStore) UpdateAdminConfiguration ¶
func (f *FakeAdminConfigStore) UpdateAdminConfiguration(cmd UpdateAdminConfigurationCmd) error
type FakeImageStore ¶
type FakeImageStore struct {
// contains filtered or unexported fields
}
func NewFakeImageStore ¶
func NewFakeImageStore(t *testing.T, images ...*models.Image) *FakeImageStore
func (*FakeImageStore) GetImageByURL ¶
type GroupDelta ¶
type GroupDelta struct { GroupKey models.AlertRuleGroupKey // AffectedGroups contains all rules of all groups that are affected by these changes. // For example, during moving a rule from one group to another this map will contain all rules from two groups AffectedGroups map[models.AlertRuleGroupKey]models.RulesGroup New []*models.AlertRule Update []RuleDelta Delete []*models.AlertRule }
func CalculateChanges ¶
func CalculateChanges(ctx context.Context, ruleReader RuleReader, groupKey models.AlertRuleGroupKey, submittedRules []*models.AlertRuleWithOptionals) (*GroupDelta, error)
CalculateChanges calculates the difference between rules in the group in the database and the submitted rules. If a submitted rule has UID it tries to find it in the database (in other groups). returns a list of rules that need to be added, updated and deleted. Deleted considered rules in the database that belong to the group but do not exist in the list of submitted rules.
func CalculateRuleCreate ¶
func CalculateRuleCreate(ctx context.Context, ruleReader RuleReader, rule *models.AlertRule) (*GroupDelta, error)
CalculateRuleCreate calculates GroupDelta that reflects an operation of adding a new rule to the group.
func CalculateRuleDelete ¶
func CalculateRuleDelete(ctx context.Context, ruleReader RuleReader, ruleKey models.AlertRuleKey) (*GroupDelta, error)
CalculateRuleDelete calculates GroupDelta that reflects an operation of removing a rule from the group.
func CalculateRuleGroupDelete ¶
func CalculateRuleGroupDelete(ctx context.Context, ruleReader RuleReader, groupKey models.AlertRuleGroupKey) (*GroupDelta, error)
CalculateRuleGroupDelete calculates GroupDelta that reflects an operation of removing entire group
func CalculateRuleUpdate ¶
func CalculateRuleUpdate(ctx context.Context, ruleReader RuleReader, rule *models.AlertRuleWithOptionals) (*GroupDelta, error)
CalculateRuleUpdate calculates GroupDelta for rule update operation
func UpdateCalculatedRuleFields ¶
func UpdateCalculatedRuleFields(ch *GroupDelta) *GroupDelta
UpdateCalculatedRuleFields refreshes the calculated fields in a set of alert rule changes. This may generate new changes to keep a group consistent, such as versions or rule indexes.
func (*GroupDelta) IsEmpty ¶
func (c *GroupDelta) IsEmpty() bool
func (*GroupDelta) NewOrUpdatedNotificationSettings ¶
func (c *GroupDelta) NewOrUpdatedNotificationSettings() []models.NotificationSettings
NewOrUpdatedNotificationSettings returns a list of notification settings that are either new or updated in the group.
type ImageAdminStore ¶
type ImageAdminStore interface { ImageStore // DeleteExpiredImages deletes expired images. It returns the number of deleted images // or an error. DeleteExpiredImages(context.Context) (int64, error) }
type ImageStore ¶
type ImageStore interface { // GetImage returns the image with the token. It returns ErrImageNotFound // if the image has expired or if an image with the token does not exist. GetImage(ctx context.Context, token string) (*models.Image, error) // GetImageByURL looks for a image by its URL. It returns ErrImageNotFound // if the image has expired or if there is no image associated with the URL. GetImageByURL(ctx context.Context, url string) (*models.Image, error) // GetImages returns all images that match the tokens. If one or more images // have expired or do not exist then it also returns the unmatched tokens // and an ErrImageNotFound error. GetImages(ctx context.Context, tokens []string) ([]models.Image, []string, error) // SaveImage saves the image or returns an error. SaveImage(ctx context.Context, img *models.Image) error // URLExists takes a URL and returns a boolean indicating whether or not // we have an image for that URL. URLExists(ctx context.Context, url string) (bool, error) }
type Optimization ¶
type Optimization struct { // RefID of the query that can be optimized RefID string // contains filtered or unexported fields }
func OptimizeAlertQueries ¶
func OptimizeAlertQueries(queries []models.AlertQuery) ([]Optimization, error)
OptimizeAlertQueries was added to mitigate the high load that could be created by loki range queries. In previous versions of Grafana, Loki datasources would default to range queries instead of instant queries, sometimes creating unnecessary load. This is only done for Grafana Cloud.
type RuleReader ¶
type RuleReader interface { ListAlertRules(ctx context.Context, query *models.ListAlertRulesQuery) (models.RulesGroup, error) GetAlertRulesGroupByRuleUID(ctx context.Context, query *models.GetAlertRulesGroupByRuleUIDQuery) ([]*models.AlertRule, error) }
type SaveCallback ¶
type SaveCallback func() error
type UpdateAdminConfigurationCmd ¶
type UpdateAdminConfigurationCmd struct {
AdminConfiguration *ngmodels.AdminConfiguration
}