@@ -180,7 +180,7 @@ func assembleCollectorConfigMap(
180180 if forDeletion {
181181 configMapData = map [string ]string {}
182182 } else {
183- exporterMap , err := ConvertExportSettingsToExporterMap (config .Export )
183+ exporterMap , err := ConvertExportSettingsToExporterMap (config .DefaultExport , config . PerNamespaceExports )
184184 if err != nil {
185185 return nil , fmt .Errorf ("%s %w" , commonExportErrorPrefix , err )
186186 }
@@ -425,14 +425,36 @@ func compareErrorMode(
425425 return errorMode1
426426}
427427
428- func ConvertExportSettingsToExporterMap (export dash0common.Export ) (map [string ][]OtlpExporter , error ) {
428+ // TODO
429+ // - actually use the exporter settings from the Dash0Monitoring resources
430+ // - also create different exporters for other export types, e.g. gRPC, HTTP
431+ // - ...?
432+
433+ func ConvertExportSettingsToExporterMap (
434+ defaultExport dash0common.Export ,
435+ perNamespaceExports map [string ]dash0common.Export ,
436+ ) (map [string ][]OtlpExporter , error ) {
429437 exporterMap := make (map [string ][]OtlpExporter )
430- exporterMap ["default" ] = []OtlpExporter {}
438+ var err error
439+ exporterMap ["_default" ], err = convertExportSettingsToExporterList (defaultExport )
440+ if err != nil {
441+ return nil , err
442+ }
443+ for namespace , export := range perNamespaceExports {
444+ exporterMap [namespace ], err = convertExportSettingsToExporterList (export )
445+ if err != nil {
446+ return nil , err
447+ }
448+ }
449+ return exporterMap , nil
450+ }
431451
452+ func convertExportSettingsToExporterList (export dash0common.Export ) ([]OtlpExporter , error ) {
432453 if export .Dash0 == nil && export .Grpc == nil && export .Http == nil {
433454 return nil , fmt .Errorf ("%s no exporter configuration found" , commonExportErrorPrefix )
434455 }
435456
457+ var exporters []OtlpExporter
436458 if export .Dash0 != nil {
437459 d0 := export .Dash0
438460 if d0 .Endpoint == "" {
@@ -454,20 +476,20 @@ func ConvertExportSettingsToExporterMap(export dash0common.Export) (map[string][
454476 Headers : headers ,
455477 }
456478 setGrpcTlsFromPrefix (export .Dash0 .Endpoint , & dash0ExporterDefault )
457- exporterMap [ "default" ] = append (exporterMap [ "default" ] , dash0ExporterDefault )
458-
459- headersRouted := headers
460- headersRouted = append (headersRouted , dash0common.Header {
461- Name : util .Dash0DatasetHeaderName ,
462- Value : "routed" ,
463- })
464- dash0ExporterForRoutedNamespace := OtlpExporter {
465- Name : "otlp/dash0/routed-namespace" ,
466- Endpoint : export .Dash0 .Endpoint ,
467- Headers : headersRouted ,
468- }
469- setGrpcTlsFromPrefix (export .Dash0 .Endpoint , & dash0ExporterForRoutedNamespace )
470- exporterMap ["routed" ] = []OtlpExporter {dash0ExporterForRoutedNamespace }
479+ exporters = append (exporters , dash0ExporterDefault )
480+
481+ // headersRouted := headers
482+ // headersRouted = append(headersRouted, dash0common.Header{
483+ // Name: util.Dash0DatasetHeaderName,
484+ // Value: "routed",
485+ // })
486+ // dash0ExporterForRoutedNamespace := OtlpExporter{
487+ // Name: "otlp/dash0/routed-namespace",
488+ // Endpoint: export.Dash0.Endpoint,
489+ // Headers: headersRouted,
490+ // }
491+ // setGrpcTlsFromPrefix(export.Dash0.Endpoint, &dash0ExporterForRoutedNamespace)
492+ // exporterMap["routed"] = []OtlpExporter{dash0ExporterForRoutedNamespace}
471493 }
472494
473495 if export .Grpc != nil {
@@ -489,7 +511,7 @@ func ConvertExportSettingsToExporterMap(export dash0common.Export) (map[string][
489511 if len (grpc .Headers ) > 0 {
490512 grpcExporter .Headers = grpc .Headers
491513 }
492- exporterMap [ "default" ] = append (exporterMap [ "default" ] , grpcExporter )
514+ exporters = append (exporters , grpcExporter )
493515 }
494516
495517 if export .Http != nil {
@@ -510,10 +532,10 @@ func ConvertExportSettingsToExporterMap(export dash0common.Export) (map[string][
510532 if len (http .Headers ) > 0 {
511533 httpExporter .Headers = http .Headers
512534 }
513- exporterMap [ "default" ] = append (exporterMap [ "default" ] , httpExporter )
535+ exporters = append (exporters , httpExporter )
514536 }
515537
516- return exporterMap , nil
538+ return exporters , nil
517539}
518540
519541func renderCollectorConfiguration (
0 commit comments