@@ -177,7 +177,7 @@ func assembleCollectorConfigMap(
177177 if forDeletion {
178178 configMapData = map [string ]string {}
179179 } else {
180- exporterMap , err := ConvertExportSettingsToExporterMap (config .Export )
180+ exporterMap , err := ConvertExportSettingsToExporterMap (config .DefaultExport , config . PerNamespaceExports )
181181 if err != nil {
182182 return nil , fmt .Errorf ("%s %w" , commonExportErrorPrefix , err )
183183 }
@@ -416,14 +416,36 @@ func compareErrorMode(
416416 return errorMode1
417417}
418418
419- func ConvertExportSettingsToExporterMap (export dash0common.Export ) (map [string ][]OtlpExporter , error ) {
419+ // TODO
420+ // - actually use the exporter settings from the Dash0Monitoring resources
421+ // - also create different exporters for other export types, e.g. gRPC, HTTP
422+ // - ...?
423+
424+ func ConvertExportSettingsToExporterMap (
425+ defaultExport dash0common.Export ,
426+ perNamespaceExports map [string ]dash0common.Export ,
427+ ) (map [string ][]OtlpExporter , error ) {
420428 exporterMap := make (map [string ][]OtlpExporter )
421- exporterMap ["default" ] = []OtlpExporter {}
429+ var err error
430+ exporterMap ["_default" ], err = convertExportSettingsToExporterList (defaultExport )
431+ if err != nil {
432+ return nil , err
433+ }
434+ for namespace , export := range perNamespaceExports {
435+ exporterMap [namespace ], err = convertExportSettingsToExporterList (export )
436+ if err != nil {
437+ return nil , err
438+ }
439+ }
440+ return exporterMap , nil
441+ }
422442
443+ func convertExportSettingsToExporterList (export dash0common.Export ) ([]OtlpExporter , error ) {
423444 if export .Dash0 == nil && export .Grpc == nil && export .Http == nil {
424445 return nil , fmt .Errorf ("%s no exporter configuration found" , commonExportErrorPrefix )
425446 }
426447
448+ var exporters []OtlpExporter
427449 if export .Dash0 != nil {
428450 d0 := export .Dash0
429451 if d0 .Endpoint == "" {
@@ -439,26 +461,26 @@ func ConvertExportSettingsToExporterMap(export dash0common.Export) (map[string][
439461 Value : d0 .Dataset ,
440462 })
441463 }
442- dash0ExporterDefault := OtlpExporter {
464+ dash0Exporter := OtlpExporter {
443465 Name : "otlp/dash0/_default" ,
444466 Endpoint : export .Dash0 .Endpoint ,
445467 Headers : headers ,
446468 }
447- setGrpcTls (export .Dash0 .Endpoint , & dash0ExporterDefault )
448- exporterMap [ "default" ] = append (exporterMap [ "default" ], dash0ExporterDefault )
449-
450- headersRouted := headers
451- headersRouted = append (headersRouted , dash0common.Header {
452- Name : util .Dash0DatasetHeaderName ,
453- Value : "routed" ,
454- })
455- dash0ExporterForRoutedNamespace := OtlpExporter {
456- Name : "otlp/dash0/routed-namespace" ,
457- Endpoint : export .Dash0 .Endpoint ,
458- Headers : headersRouted ,
459- }
460- setGrpcTls (export .Dash0 .Endpoint , & dash0ExporterForRoutedNamespace )
461- exporterMap ["routed" ] = []OtlpExporter {dash0ExporterForRoutedNamespace }
469+ setGrpcTls (export .Dash0 .Endpoint , & dash0Exporter )
470+ exporters = append (exporters , dash0Exporter )
471+
472+ // headersRouted := headers
473+ // headersRouted = append(headersRouted, dash0common.Header{
474+ // Name: util.Dash0DatasetHeaderName,
475+ // Value: "routed",
476+ // })
477+ // dash0ExporterForRoutedNamespace := OtlpExporter{
478+ // Name: "otlp/dash0/routed-namespace",
479+ // Endpoint: export.Dash0.Endpoint,
480+ // Headers: headersRouted,
481+ // }
482+ // setGrpcTls(export.Dash0.Endpoint, &dash0ExporterForRoutedNamespace)
483+ // exporterMap["routed"] = []OtlpExporter{dash0ExporterForRoutedNamespace}
462484 }
463485
464486 if export .Grpc != nil {
@@ -475,7 +497,7 @@ func ConvertExportSettingsToExporterMap(export dash0common.Export) (map[string][
475497 if len (grpc .Headers ) > 0 {
476498 grpcExporter .Headers = grpc .Headers
477499 }
478- exporterMap [ "default" ] = append (exporterMap [ "default" ] , grpcExporter )
500+ exporters = append (exporters , grpcExporter )
479501 }
480502
481503 if export .Http != nil {
@@ -495,10 +517,10 @@ func ConvertExportSettingsToExporterMap(export dash0common.Export) (map[string][
495517 if len (http .Headers ) > 0 {
496518 httpExporter .Headers = http .Headers
497519 }
498- exporterMap [ "default" ] = append (exporterMap [ "default" ] , httpExporter )
520+ exporters = append (exporters , httpExporter )
499521 }
500522
501- return exporterMap , nil
523+ return exporters , nil
502524}
503525
504526func renderCollectorConfiguration (
0 commit comments