@@ -40,6 +40,7 @@ type OtelColConfigInput struct {
4040 components.ResourceRelations
4141 MemoryLimiter v1alpha1.MemoryLimiter
4242 Debug bool
43+ DryRunMode bool
4344}
4445
4546func (cfgInput * OtelColConfigInput ) IsEmpty () bool {
@@ -61,15 +62,22 @@ func (cfgInput *OtelColConfigInput) IsEmpty() bool {
6162}
6263
6364func (cfgInput * OtelColConfigInput ) generateExporters (ctx context.Context ) map [string ]any {
64- exporters := map [string ]any {}
65+ // If in dry-run mode, only generate debug exporters
66+ if cfgInput .DryRunMode {
67+ return exporter .GenerateDebugExporters ()
68+ }
69+
70+ exporters := make (map [string ]any )
71+
72+ if cfgInput .Debug {
73+ maps .Copy (exporters , exporter .GenerateDebugExporters ())
74+ }
75+
6576 maps .Copy (exporters , exporter .GenerateMetricsExporters ())
6677 maps .Copy (exporters , exporter .GenerateOTLPGRPCExporters (ctx , cfgInput .ResourceRelations ))
6778 maps .Copy (exporters , exporter .GenerateOTLPHTTPExporters (ctx , cfgInput .ResourceRelations ))
6879 maps .Copy (exporters , exporter .GenerateFluentforwardExporters (ctx , cfgInput .ResourceRelations ))
6980 maps .Copy (exporters , exporter .GenerateFileExporter (ctx , cfgInput .ResourceRelations ))
70- if cfgInput .Debug {
71- maps .Copy (exporters , exporter .GenerateDebugExporters ())
72- }
7381
7482 return exporters
7583}
@@ -122,7 +130,7 @@ func (cfgInput *OtelColConfigInput) generateExtensions() (map[string]any, []stri
122130 }
123131
124132 for _ , tenant := range cfgInput .Tenants {
125- if tenant .Spec .PersistenceConfig .EnableFileStorage {
133+ if ! cfgInput . DryRunMode && tenant .Spec .PersistenceConfig .EnableFileStorage {
126134 extensions [fmt .Sprintf ("file_storage/%s" , tenant .Name )] = storage .GenerateFileStorageExtensionForTenant (tenant .Spec .PersistenceConfig .Directory , tenant .Name )
127135 }
128136 }
@@ -149,7 +157,7 @@ func (cfgInput *OtelColConfigInput) generateReceivers() map[string]any {
149157 }); tenantIdx != - 1 {
150158 namespaces := cfgInput .Tenants [tenantIdx ].Status .LogSourceNamespaces
151159 if len (namespaces ) > 0 || cfgInput .Tenants [tenantIdx ].Spec .SelectFromAllNamespaces {
152- receivers [fmt .Sprintf ("filelog/%s" , tenantName )] = receiver .GenerateDefaultKubernetesReceiver (namespaces , cfgInput .Tenants [tenantIdx ])
160+ receivers [fmt .Sprintf ("filelog/%s" , tenantName )] = receiver .GenerateDefaultKubernetesReceiver (namespaces , cfgInput .DryRunMode , cfgInput . Tenants [tenantIdx ])
153161 }
154162 }
155163 }
@@ -159,8 +167,11 @@ func (cfgInput *OtelColConfigInput) generateReceivers() map[string]any {
159167
160168func (cfgInput * OtelColConfigInput ) generateConnectors () map [string ]any {
161169 connectors := make (map [string ]any )
162- maps .Copy (connectors , connector .GenerateCountConnectors ())
163- maps .Copy (connectors , connector .GenerateBytesConnectors ())
170+
171+ if ! cfgInput .DryRunMode {
172+ maps .Copy (connectors , connector .GenerateCountConnectors ())
173+ maps .Copy (connectors , connector .GenerateBytesConnectors ())
174+ }
164175
165176 for _ , tenant := range cfgInput .Tenants {
166177 // Generate routing connector for the tenant's subscription if it has any
@@ -193,16 +204,18 @@ func (cfgInput *OtelColConfigInput) generateNamedPipelines() map[string]*otelv1b
193204 namedPipelines := make (map [string ]* otelv1beta1.Pipeline )
194205 tenants := []string {}
195206 for tenant := range cfgInput .TenantSubscriptionMap {
196- namedPipelines [fmt .Sprintf ("logs/tenant_%s" , tenant )] = pipeline .GenerateRootPipeline (cfgInput .Tenants , tenant )
207+ namedPipelines [fmt .Sprintf ("logs/tenant_%s" , tenant )] = pipeline .GenerateRootPipeline (cfgInput .Tenants , tenant , cfgInput . DryRunMode )
197208 tenants = append (tenants , tenant )
198209 }
199210
200- maps .Copy (namedPipelines , pipeline .GenerateMetricsPipelines ())
211+ if ! cfgInput .DryRunMode {
212+ maps .Copy (namedPipelines , pipeline .GenerateMetricsPipelines ())
213+ }
201214
202215 for _ , tenant := range tenants {
203216 // Generate a pipeline for the tenant
204217 tenantRootPipeline := fmt .Sprintf ("logs/tenant_%s" , tenant )
205- namedPipelines [tenantRootPipeline ] = pipeline .GenerateRootPipeline (cfgInput .Tenants , tenant )
218+ namedPipelines [tenantRootPipeline ] = pipeline .GenerateRootPipeline (cfgInput .Tenants , tenant , cfgInput . DryRunMode )
206219
207220 connector .GenerateRoutingConnectorForBridgesTenantPipeline (tenant , namedPipelines [tenantRootPipeline ], cfgInput .Bridges )
208221 processor .GenerateTransformProcessorForTenantPipeline (tenant , namedPipelines [tenantRootPipeline ], cfgInput .Tenants )
@@ -234,24 +247,25 @@ func (cfgInput *OtelColConfigInput) generateNamedPipelines() map[string]*otelv1b
234247
235248 var exporters []string
236249
237- if output .Output .Spec .OTLPGRPC != nil {
238- exporters = []string {components .GetExporterNameForOutput (output .Output ), outputCountConnectorName , outputBytesConnectorName }
239- }
240-
241- if output .Output .Spec .OTLPHTTP != nil {
242- exporters = []string {components .GetExporterNameForOutput (output .Output ), outputCountConnectorName , outputBytesConnectorName }
243- }
244-
245- if output .Output .Spec .Fluentforward != nil {
246- exporters = []string {components .GetExporterNameForOutput (output .Output ), outputCountConnectorName , outputBytesConnectorName }
247- }
248-
249- if output .Output .Spec .File != nil {
250- exporters = []string {components .GetExporterNameForOutput (output .Output ), outputCountConnectorName , outputBytesConnectorName }
251- }
252-
253- if cfgInput .Debug {
254- exporters = append (exporters , "debug" )
250+ // If in dry-run mode, only generate debug exporters
251+ if cfgInput .DryRunMode {
252+ exporters = []string {exporter .DebugExporterID }
253+ } else {
254+ if cfgInput .Debug {
255+ exporters = append (exporters , exporter .DebugExporterID )
256+ }
257+ if output .Output .Spec .OTLPGRPC != nil {
258+ exporters = append (exporters , components .GetExporterNameForOutput (output .Output ), outputCountConnectorName , outputBytesConnectorName )
259+ }
260+ if output .Output .Spec .OTLPHTTP != nil {
261+ exporters = append (exporters , components .GetExporterNameForOutput (output .Output ), outputCountConnectorName , outputBytesConnectorName )
262+ }
263+ if output .Output .Spec .Fluentforward != nil {
264+ exporters = append (exporters , components .GetExporterNameForOutput (output .Output ), outputCountConnectorName , outputBytesConnectorName )
265+ }
266+ if output .Output .Spec .File != nil {
267+ exporters = append (exporters , components .GetExporterNameForOutput (output .Output ), outputCountConnectorName , outputBytesConnectorName )
268+ }
255269 }
256270
257271 namedPipelines [outputPipelineName ] = pipeline .GeneratePipeline (receivers , processors , exporters )
0 commit comments