cache

package
v1.0.20250928075430 Latest Latest
Warning

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

Go to latest
Published: Sep 28, 2025 License: MIT Imports: 28 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// 日志模块标识
	LogModuleMonitor = "[监控模块]"

	// 配置文件名模板
	ConfigNameAlertManager = "alertmanager_pool_%d_%s.yaml"
	ConfigNamePrometheus   = "prometheus_scrape_pool_%d_%s.yaml"
	ConfigNameAlertRule    = "prometheus_alert_rule_%d_%s.yaml"
	ConfigNameRecordRule   = "prometheus_record_rule_%d_%s.yaml"
)
View Source
const (
	DefaultTaskTimeout = 5 * time.Minute
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AlertManagerConfigCache

type AlertManagerConfigCache interface {
	GetConfigByIP(ip string) string
	GenerateMainConfig(ctx context.Context) error
	GenerateMainConfigForPool(pool *model.MonitorAlertManagerPool) *altconfig.Config
	GenerateRouteConfigForPool(ctx context.Context, pool *model.MonitorAlertManagerPool) ([]*altconfig.Route, []altconfig.Receiver)
}

AlertManagerConfigCache AlertManager配置缓存接口

func NewAlertManagerConfigCache

func NewAlertManagerConfigCache(
	logger *zap.Logger,
	alertPoolDAO alertPoolDao.AlertManagerPoolDAO,
	alertSendDAO alertPoolDao.AlertManagerSendDAO,
	configDAO configDao.MonitorConfigDAO,
	batchManager *BatchConfigManager,
	redisClient redis.Cmdable,
) AlertManagerConfigCache

type AlertRuleConfigCache

type AlertRuleConfigCache interface {
	GetConfigByIP(ip string) string
	GenerateMainConfig(ctx context.Context) error
	GenerateConfigForPool(ctx context.Context, pool *model.MonitorScrapePool) map[string]string
}

func NewAlertRuleConfigCache

func NewAlertRuleConfigCache(
	logger *zap.Logger,
	scrapePoolDAO scrapePoolDao.ScrapePoolDAO,
	alertRuleDAO alertRuleDao.AlertManagerRuleDAO,
	configDAO configDao.MonitorConfigDAO,
	batchManager *BatchConfigManager,
	redisClient redis.Cmdable,
) AlertRuleConfigCache

type BatchConfigManager

type BatchConfigManager struct {
	// contains filtered or unexported fields
}

func NewBatchConfigManager

func NewBatchConfigManager(configDAO configDao.MonitorConfigDAO, logger *zap.Logger) *BatchConfigManager

func (*BatchConfigManager) BatchSaveConfigs

func (b *BatchConfigManager) BatchSaveConfigs(ctx context.Context, configMap map[string]ConfigData) error

BatchSaveConfigs 批量保存配置到数据库

type ConfigData

type ConfigData struct {
	Name       string
	PoolID     int
	ConfigType int8
	Content    string
}

type MonitorCache

type MonitorCache interface {
	MonitorCacheManager(ctx context.Context) error
}

func NewMonitorCache

func NewMonitorCache(
	promConfig PrometheusConfigCache,
	alertManagerConfig AlertManagerConfigCache,
	alertRuleConfig AlertRuleConfigCache,
	alertRecordConfig RecordRuleConfigCache,
	l *zap.Logger,
) MonitorCache

type PrometheusConfigCache

type PrometheusConfigCache interface {
	GetConfigByIP(ip string) string
	GenerateMainConfig(ctx context.Context) error
	CreateBaseConfig(pool *model.MonitorScrapePool) (pc.Config, error)
	GenerateScrapeConfigs(ctx context.Context, pool *model.MonitorScrapePool) []*pc.ScrapeConfig
	ApplyHashMod(scrapeConfigs []*pc.ScrapeConfig, modNum, index int) []*pc.ScrapeConfig
}

func NewPrometheusConfigCache

func NewPrometheusConfigCache(
	logger *zap.Logger,
	scrapePoolDAO scrapeJobDao.ScrapePoolDAO,
	scrapeJobDAO scrapeJobDao.ScrapeJobDAO,
	configDAO configDao.MonitorConfigDAO,
	batchManager *BatchConfigManager,
	redisClient redis.Cmdable,
) PrometheusConfigCache

type RecordGroup

type RecordGroup struct {
	Name  string         `yaml:"name"`
	Rules []rulefmt.Rule `yaml:"rules"`
}

type RecordGroups

type RecordGroups struct {
	Groups []RecordGroup `yaml:"groups"`
}

type RecordRuleConfigCache

type RecordRuleConfigCache interface {
	GetConfigByIP(ip string) string
	GenerateMainConfig(ctx context.Context) error
	GenerateConfigForPool(ctx context.Context, pool *model.MonitorScrapePool) map[string]string
}

func NewRecordRuleConfigCache

func NewRecordRuleConfigCache(
	logger *zap.Logger,
	scrapePoolDAO scrapePoolDao.ScrapePoolDAO,
	alertRecordDAO alertRecordDao.AlertManagerRecordDAO,
	configDAO configDao.MonitorConfigDAO,
	batchManager *BatchConfigManager,
	redisClient redis.Cmdable,
) RecordRuleConfigCache

type RuleGroup

type RuleGroup struct {
	Name  string         `yaml:"name"`
	Rules []rulefmt.Rule `yaml:"rules"`
}

type RuleGroups

type RuleGroups struct {
	Groups []RuleGroup `yaml:"groups"`
}

Jump to

Keyboard shortcuts

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