mirror of
				https://github.com/optim-enterprises-bv/vault.git
				synced 2025-10-30 18:17:55 +00:00 
			
		
		
		
	improve autopilot logging when it starts up (#27464)
* improve autopilot logging when it starts up * add changelog
This commit is contained in:
		
							
								
								
									
										3
									
								
								changelog/27464.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								changelog/27464.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | ```release-note:improvement | ||||||
|  | storage/raft: Improve autopilot logging on startup to show config values clearly and avoid spurious logs | ||||||
|  | ``` | ||||||
| @@ -89,6 +89,27 @@ type AutopilotConfig struct { | |||||||
| 	UpgradeVersionTag string `mapstructure:"upgrade_version_tag"` | 	UpgradeVersionTag string `mapstructure:"upgrade_version_tag"` | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func (ac *AutopilotConfig) String() string { | ||||||
|  | 	s := "CleanupDeadServers:%t " + | ||||||
|  | 		"LastContactThreshold:%s " + | ||||||
|  | 		"DeadServerLastContactThreshold:%s " + | ||||||
|  | 		"MaxTrailingLogs:%d " + | ||||||
|  | 		"MinQuorum:%d " + | ||||||
|  | 		"ServerStabilizationTime:%s " + | ||||||
|  | 		"DisableUpgradeMigration:%t " + | ||||||
|  | 		"RedundancyZoneTag:%s " + | ||||||
|  | 		"UpgradeVersionTag:%s" | ||||||
|  | 	return fmt.Sprintf(s, ac.CleanupDeadServers, | ||||||
|  | 		ac.LastContactThreshold, | ||||||
|  | 		ac.DeadServerLastContactThreshold, | ||||||
|  | 		ac.MaxTrailingLogs, | ||||||
|  | 		ac.MinQuorum, | ||||||
|  | 		ac.ServerStabilizationTime, | ||||||
|  | 		ac.DisableUpgradeMigration, | ||||||
|  | 		ac.RedundancyZoneTag, | ||||||
|  | 		ac.UpgradeVersionTag) | ||||||
|  | } | ||||||
|  |  | ||||||
| // Merge combines the supplied config with the receiver. Supplied ones take | // Merge combines the supplied config with the receiver. Supplied ones take | ||||||
| // priority. | // priority. | ||||||
| func (to *AutopilotConfig) Merge(from *AutopilotConfig) { | func (to *AutopilotConfig) Merge(from *AutopilotConfig) { | ||||||
| @@ -832,6 +853,8 @@ func (b *RaftBackend) SetupAutopilot(ctx context.Context, storageConfig *Autopil | |||||||
| 	// Merge the setting provided over the API | 	// Merge the setting provided over the API | ||||||
| 	b.autopilotConfig.Merge(storageConfig) | 	b.autopilotConfig.Merge(storageConfig) | ||||||
|  |  | ||||||
|  | 	infoArgs := []interface{}{"config", b.autopilotConfig} | ||||||
|  |  | ||||||
| 	// Create the autopilot instance | 	// Create the autopilot instance | ||||||
| 	options := []autopilot.Option{ | 	options := []autopilot.Option{ | ||||||
| 		autopilot.WithLogger(b.logger), | 		autopilot.WithLogger(b.logger), | ||||||
| @@ -839,17 +862,18 @@ func (b *RaftBackend) SetupAutopilot(ctx context.Context, storageConfig *Autopil | |||||||
| 	} | 	} | ||||||
| 	if b.autopilotReconcileInterval != 0 { | 	if b.autopilotReconcileInterval != 0 { | ||||||
| 		options = append(options, autopilot.WithReconcileInterval(b.autopilotReconcileInterval)) | 		options = append(options, autopilot.WithReconcileInterval(b.autopilotReconcileInterval)) | ||||||
|  | 		infoArgs = append(infoArgs, []interface{}{"reconcile_interval", b.autopilotReconcileInterval}...) | ||||||
| 	} | 	} | ||||||
| 	if b.autopilotUpdateInterval != 0 { | 	if b.autopilotUpdateInterval != 0 { | ||||||
| 		options = append(options, autopilot.WithUpdateInterval(b.autopilotUpdateInterval)) | 		options = append(options, autopilot.WithUpdateInterval(b.autopilotUpdateInterval)) | ||||||
|  | 		infoArgs = append(infoArgs, []interface{}{"update_interval", b.autopilotUpdateInterval}...) | ||||||
| 	} | 	} | ||||||
| 	b.autopilot = autopilot.New(b.raft, NewDelegate(b), options...) | 	b.autopilot = autopilot.New(b.raft, NewDelegate(b), options...) | ||||||
| 	b.followerStates = followerStates | 	b.followerStates = followerStates | ||||||
| 	b.followerHeartbeatTicker = time.NewTicker(1 * time.Second) | 	b.followerHeartbeatTicker = time.NewTicker(1 * time.Second) | ||||||
|  |  | ||||||
| 	b.l.Unlock() | 	b.l.Unlock() | ||||||
|  |  | ||||||
| 	b.logger.Info("starting autopilot", "config", b.autopilotConfig, "reconcile_interval", b.autopilotReconcileInterval) | 	b.logger.Info("starting autopilot", infoArgs...) | ||||||
| 	b.autopilot.Start(ctx) | 	b.autopilot.Start(ctx) | ||||||
|  |  | ||||||
| 	go b.startFollowerHeartbeatTracker() | 	go b.startFollowerHeartbeatTracker() | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Josh Black
					Josh Black