func applyDefaultCollectionConfiguration()

in internal/configuration/configuration.go [190:240]


func applyDefaultCollectionConfiguration(configFromFile *cpb.CollectionConfiguration) *cpb.CollectionConfiguration {
	cc := configFromFile
	if cc == nil {
		cc = &cpb.CollectionConfiguration{}
	}
	
	if cc.GetCollectWorkloadValidationMetrics() == nil {
		cc.CollectWorkloadValidationMetrics = &wpb.BoolValue{Value: true}
	}
	if cc.GetCollectWorkloadValidationMetrics().GetValue() && cc.GetWorkloadValidationMetricsFrequency() <= 0 {
		cc.WorkloadValidationMetricsFrequency = 300
	}
	if cc.GetCollectWorkloadValidationMetrics().GetValue() && cc.GetWorkloadValidationDbMetricsFrequency() <= 0 {
		cc.WorkloadValidationDbMetricsFrequency = 3600 // Default frequency is 1 hour.
	}
	if cc.GetCollectProcessMetrics() && cc.GetProcessMetricsFrequency() <= 0 {
		cc.ProcessMetricsFrequency = 5
	}
	if cc.GetCollectProcessMetrics() && cc.GetSlowProcessMetricsFrequency() <= 0 {
		cc.SlowProcessMetricsFrequency = 30
	}
	if cc.GetCollectAgentMetrics() && cc.GetAgentMetricsFrequency() <= 0 {
		cc.AgentMetricsFrequency = 60
	}
	if cc.GetCollectAgentMetrics() && cc.GetAgentHealthFrequency() <= 0 {
		cc.AgentHealthFrequency = 60
	}
	if cc.GetCollectAgentMetrics() && cc.GetHeartbeatFrequency() <= 0 {
		cc.HeartbeatFrequency = 60
	}
	
	if cc.GetCollectAgentMetrics() && cc.GetMissedHeartbeatThreshold() <= 0 {
		cc.MissedHeartbeatThreshold = 10
	}
	if cc.GetDataWarehouseEndpoint() == "" {
		cc.DataWarehouseEndpoint = "https://workloadmanager-datawarehouse.googleapis.com/"
	}
	if cc.GetWorkloadValidationCollectionDefinition() == nil {
		cc.WorkloadValidationCollectionDefinition = &cpb.WorkloadValidationCollectionDefinition{
			FetchLatestConfig:       &wpb.BoolValue{Value: true},
			ConfigTargetEnvironment: cpb.TargetEnvironment_PRODUCTION,
		}
	}
	if cc.GetWorkloadValidationCollectionDefinition().GetConfigTargetEnvironment() == cpb.TargetEnvironment_TARGET_ENVIRONMENT_UNSPECIFIED {
		cc.WorkloadValidationCollectionDefinition.ConfigTargetEnvironment = cpb.TargetEnvironment_PRODUCTION
	}
	if cc.GetWorkloadValidationCollectionDefinition().GetFetchLatestConfig() == nil {
		cc.WorkloadValidationCollectionDefinition.FetchLatestConfig = &wpb.BoolValue{Value: true}
	}
	return cc
}