@ -200,7 +200,7 @@ func (ng *AlertNG) init() error {
PromoteConfig : true ,
SyncInterval : ng . Cfg . UnifiedAlerting . RemoteAlertmanager . SyncInterval ,
}
remoteAM , err := createRemoteAlertmanager ( cfg , ng . KVStore , ng . SecretsService . Decrypt , autogenFn , m )
remoteAM , err := createRemoteAlertmanager ( cfg , ng . KVStore , ng . SecretsService . Decrypt , autogenFn , m , ng . tracer )
if err != nil {
moaLogger . Error ( "Failed to create remote Alertmanager" , "err" , err )
return nil , err
@ -234,7 +234,7 @@ func (ng *AlertNG) init() error {
TenantID : ng . Cfg . UnifiedAlerting . RemoteAlertmanager . TenantID ,
URL : ng . Cfg . UnifiedAlerting . RemoteAlertmanager . URL ,
}
remoteAM , err := createRemoteAlertmanager ( cfg , ng . KVStore , ng . SecretsService . Decrypt , autogenFn , m )
remoteAM , err := createRemoteAlertmanager ( cfg , ng . KVStore , ng . SecretsService . Decrypt , autogenFn , m , ng . tracer )
if err != nil {
moaLogger . Error ( "Failed to create remote Alertmanager, falling back to using only the internal one" , "err" , err )
return internalAM , nil
@ -270,7 +270,7 @@ func (ng *AlertNG) init() error {
URL : ng . Cfg . UnifiedAlerting . RemoteAlertmanager . URL ,
SyncInterval : ng . Cfg . UnifiedAlerting . RemoteAlertmanager . SyncInterval ,
}
remoteAM , err := createRemoteAlertmanager ( cfg , ng . KVStore , ng . SecretsService . Decrypt , autogenFn , m )
remoteAM , err := createRemoteAlertmanager ( cfg , ng . KVStore , ng . SecretsService . Decrypt , autogenFn , m , ng . tracer )
if err != nil {
moaLogger . Error ( "Failed to create remote Alertmanager, falling back to using only the internal one" , "err" , err )
return internalAM , nil
@ -359,7 +359,7 @@ func (ng *AlertNG) init() error {
// There are a set of feature toggles available that act as short-circuits for common configurations.
// If any are set, override the config accordingly.
ApplyStateHistoryFeatureToggles ( & ng . Cfg . UnifiedAlerting . StateHistory , ng . FeatureToggles , ng . Log )
history , err := configureHistorianBackend ( initCtx , ng . Cfg . UnifiedAlerting . StateHistory , ng . annotationsRepo , ng . dashboardService , ng . store , ng . Metrics . GetHistorianMetrics ( ) , ng . Log )
history , err := configureHistorianBackend ( initCtx , ng . Cfg . UnifiedAlerting . StateHistory , ng . annotationsRepo , ng . dashboardService , ng . store , ng . Metrics . GetHistorianMetrics ( ) , ng . Log , ng . tracer )
if err != nil {
return err
}
@ -523,7 +523,7 @@ type Historian interface {
state . Historian
}
func configureHistorianBackend ( ctx context . Context , cfg setting . UnifiedAlertingStateHistorySettings , ar annotations . Repository , ds dashboards . DashboardService , rs historian . RuleStore , met * metrics . Historian , l log . Logger ) ( Historian , error ) {
func configureHistorianBackend ( ctx context . Context , cfg setting . UnifiedAlertingStateHistorySettings , ar annotations . Repository , ds dashboards . DashboardService , rs historian . RuleStore , met * metrics . Historian , l log . Logger , tracer tracing . Tracer ) ( Historian , error ) {
if ! cfg . Enabled {
met . Info . WithLabelValues ( "noop" ) . Set ( 0 )
return historian . NewNopHistorian ( ) , nil
@ -538,7 +538,7 @@ func configureHistorianBackend(ctx context.Context, cfg setting.UnifiedAlertingS
if backend == historian . BackendTypeMultiple {
primaryCfg := cfg
primaryCfg . Backend = cfg . MultiPrimary
primary , err := configureHistorianBackend ( ctx , primaryCfg , ar , ds , rs , met , l )
primary , err := configureHistorianBackend ( ctx , primaryCfg , ar , ds , rs , met , l , tracer )
if err != nil {
return nil , fmt . Errorf ( "multi-backend target \"%s\" was misconfigured: %w" , cfg . MultiPrimary , err )
}
@ -547,7 +547,7 @@ func configureHistorianBackend(ctx context.Context, cfg setting.UnifiedAlertingS
for _ , b := range cfg . MultiSecondaries {
secCfg := cfg
secCfg . Backend = b
sec , err := configureHistorianBackend ( ctx , secCfg , ar , ds , rs , met , l )
sec , err := configureHistorianBackend ( ctx , secCfg , ar , ds , rs , met , l , tracer )
if err != nil {
return nil , fmt . Errorf ( "multi-backend target \"%s\" was miconfigured: %w" , b , err )
}
@ -569,7 +569,7 @@ func configureHistorianBackend(ctx context.Context, cfg setting.UnifiedAlertingS
}
req := historian . NewRequester ( )
lokiBackendLogger := log . New ( "ngalert.state.historian" , "backend" , "loki" )
backend := historian . NewRemoteLokiBackend ( lokiBackendLogger , lcfg , req , met )
backend := historian . NewRemoteLokiBackend ( lokiBackendLogger , lcfg , req , met , tracer )
testConnCtx , cancelFunc := context . WithTimeout ( ctx , 10 * time . Second )
defer cancelFunc ( )
@ -627,8 +627,8 @@ func ApplyStateHistoryFeatureToggles(cfg *setting.UnifiedAlertingStateHistorySet
}
}
func createRemoteAlertmanager ( cfg remote . AlertmanagerConfig , kvstore kvstore . KVStore , decryptFn remote . DecryptFn , autogenFn remote . AutogenFn , m * metrics . RemoteAlertmanager ) ( * remote . Alertmanager , error ) {
return remote . NewAlertmanager ( cfg , notifier . NewFileStore ( cfg . OrgID , kvstore ) , decryptFn , autogenFn , m )
func createRemoteAlertmanager ( cfg remote . AlertmanagerConfig , kvstore kvstore . KVStore , decryptFn remote . DecryptFn , autogenFn remote . AutogenFn , m * metrics . RemoteAlertmanager , tracer tracing . Tracer ) ( * remote . Alertmanager , error ) {
return remote . NewAlertmanager ( cfg , notifier . NewFileStore ( cfg . OrgID , kvstore ) , decryptFn , autogenFn , m , tracer )
}
func createRecordingWriter ( featureToggles featuremgmt . FeatureToggles , settings setting . RecordingRuleSettings ) ( schedule . RecordingWriter , error ) {