@@ -179,7 +179,7 @@ func assembleCollectorConfigMap(
179179 if forDeletion {
180180 configMapData = map [string ]string {}
181181 } else {
182- exporterMap , err := ConvertExportSettingsToExporterMap (config .Export )
182+ exporterMap , err := ConvertExportSettingsToExporterMap (config .DefaultExport , config . PerNamespaceExports )
183183 if err != nil {
184184 return nil , fmt .Errorf ("%s %w" , commonExportErrorPrefix , err )
185185 }
@@ -424,14 +424,36 @@ func compareErrorMode(
424424 return errorMode1
425425}
426426
427- func ConvertExportSettingsToExporterMap (export dash0common.Export ) (map [string ][]OtlpExporter , error ) {
427+ // TODO
428+ // - actually use the exporter settings from the Dash0Monitoring resources
429+ // - also create different exporters for other export types, e.g. gRPC, HTTP
430+ // - ...?
431+
432+ func ConvertExportSettingsToExporterMap (
433+ defaultExport dash0common.Export ,
434+ perNamespaceExports map [string ]dash0common.Export ,
435+ ) (map [string ][]OtlpExporter , error ) {
428436 exporterMap := make (map [string ][]OtlpExporter )
429- exporterMap ["default" ] = []OtlpExporter {}
437+ var err error
438+ exporterMap ["_default" ], err = convertExportSettingsToExporterList (defaultExport )
439+ if err != nil {
440+ return nil , err
441+ }
442+ for namespace , export := range perNamespaceExports {
443+ exporterMap [namespace ], err = convertExportSettingsToExporterList (export )
444+ if err != nil {
445+ return nil , err
446+ }
447+ }
448+ return exporterMap , nil
449+ }
430450
451+ func convertExportSettingsToExporterList (export dash0common.Export ) ([]OtlpExporter , error ) {
431452 if export .Dash0 == nil && export .Grpc == nil && export .Http == nil {
432453 return nil , fmt .Errorf ("%s no exporter configuration found" , commonExportErrorPrefix )
433454 }
434455
456+ var exporters []OtlpExporter
435457 if export .Dash0 != nil {
436458 d0 := export .Dash0
437459 if d0 .Endpoint == "" {
@@ -447,26 +469,26 @@ func ConvertExportSettingsToExporterMap(export dash0common.Export) (map[string][
447469 Value : d0 .Dataset ,
448470 })
449471 }
450- dash0ExporterDefault := OtlpExporter {
472+ dash0Exporter := OtlpExporter {
451473 Name : "otlp/dash0/_default" ,
452474 Endpoint : export .Dash0 .Endpoint ,
453475 Headers : headers ,
454476 }
455- setGrpcTls (export .Dash0 .Endpoint , & dash0ExporterDefault )
456- exporterMap [ "default" ] = append (exporterMap [ "default" ], dash0ExporterDefault )
457-
458- headersRouted := headers
459- headersRouted = append (headersRouted , dash0common.Header {
460- Name : util .Dash0DatasetHeaderName ,
461- Value : "routed" ,
462- })
463- dash0ExporterForRoutedNamespace := OtlpExporter {
464- Name : "otlp/dash0/routed-namespace" ,
465- Endpoint : export .Dash0 .Endpoint ,
466- Headers : headersRouted ,
467- }
468- setGrpcTls (export .Dash0 .Endpoint , & dash0ExporterForRoutedNamespace )
469- exporterMap ["routed" ] = []OtlpExporter {dash0ExporterForRoutedNamespace }
477+ setGrpcTls (export .Dash0 .Endpoint , & dash0Exporter )
478+ exporters = append (exporters , dash0Exporter )
479+
480+ // headersRouted := headers
481+ // headersRouted = append(headersRouted, dash0common.Header{
482+ // Name: util.Dash0DatasetHeaderName,
483+ // Value: "routed",
484+ // })
485+ // dash0ExporterForRoutedNamespace := OtlpExporter{
486+ // Name: "otlp/dash0/routed-namespace",
487+ // Endpoint: export.Dash0.Endpoint,
488+ // Headers: headersRouted,
489+ // }
490+ // setGrpcTls(export.Dash0.Endpoint, &dash0ExporterForRoutedNamespace)
491+ // exporterMap["routed"] = []OtlpExporter{dash0ExporterForRoutedNamespace}
470492 }
471493
472494 if export .Grpc != nil {
@@ -483,7 +505,7 @@ func ConvertExportSettingsToExporterMap(export dash0common.Export) (map[string][
483505 if len (grpc .Headers ) > 0 {
484506 grpcExporter .Headers = grpc .Headers
485507 }
486- exporterMap [ "default" ] = append (exporterMap [ "default" ] , grpcExporter )
508+ exporters = append (exporters , grpcExporter )
487509 }
488510
489511 if export .Http != nil {
@@ -503,10 +525,10 @@ func ConvertExportSettingsToExporterMap(export dash0common.Export) (map[string][
503525 if len (http .Headers ) > 0 {
504526 httpExporter .Headers = http .Headers
505527 }
506- exporterMap [ "default" ] = append (exporterMap [ "default" ] , httpExporter )
528+ exporters = append (exporters , httpExporter )
507529 }
508530
509- return exporterMap , nil
531+ return exporters , nil
510532}
511533
512534func renderCollectorConfiguration (
0 commit comments