@@ -73,7 +73,7 @@ func getMetadataExporters(
73
73
) []* metadata.MetadataExporter {
74
74
var exporters []* metadata.MetadataExporter
75
75
76
- metadataExporters , noClientsSpecified := getClientsFromMetricsExporters (config .DimensionClients , host , nextConsumer , "dimensionClients" , logger )
76
+ metadataExporters , noClientsSpecified := getClientsFromMetricsExporters (config .DimensionClients , host , nextConsumer , "dimensionClients" , configmodels . MetricsDataType , logger )
77
77
for _ , client := range metadataExporters {
78
78
if metadataExporter , ok := (* client ).(metadata.MetadataExporter ); ok {
79
79
exporters = append (exporters , & metadataExporter )
@@ -83,7 +83,7 @@ func getMetadataExporters(
83
83
}
84
84
85
85
if len (exporters ) == 0 && noClientsSpecified {
86
- sfxExporter := getLoneSFxExporter (host )
86
+ sfxExporter := getLoneSFxExporter (host , configmodels . MetricsDataType )
87
87
if sfxExporter != nil {
88
88
if sfx , ok := sfxExporter .(metadata.MetadataExporter ); ok {
89
89
exporters = append (exporters , & sfx )
@@ -106,7 +106,7 @@ func getLogsConsumers(
106
106
) []* consumer.LogsConsumer {
107
107
var consumers []* consumer.LogsConsumer
108
108
109
- eventClients , noClientsSpecified := getClientsFromMetricsExporters (config .EventClients , host , nextConsumer , "eventClients" , logger )
109
+ eventClients , noClientsSpecified := getClientsFromMetricsExporters (config .EventClients , host , nextConsumer , "eventClients" , configmodels . LogsDataType , logger )
110
110
for _ , client := range eventClients {
111
111
if logsExporter , ok := (* client ).(consumer.LogsConsumer ); ok {
112
112
consumers = append (consumers , & logsExporter )
@@ -116,7 +116,7 @@ func getLogsConsumers(
116
116
}
117
117
118
118
if len (consumers ) == 0 && noClientsSpecified {
119
- sfxExporter := getLoneSFxExporter (host )
119
+ sfxExporter := getLoneSFxExporter (host , configmodels . LogsDataType )
120
120
if sfxExporter != nil {
121
121
if sfx , ok := sfxExporter .(consumer.LogsConsumer ); ok {
122
122
consumers = append (consumers , & sfx )
@@ -135,7 +135,7 @@ func getLogsConsumers(
135
135
// MetricsExporters, the only truly supported component type.
136
136
// If config.MetadataClients is nil, it will return a slice with nextConsumer if it's a MetricsExporter.
137
137
func getClientsFromMetricsExporters (
138
- specifiedClients []string , host component.Host , nextConsumer * consumer.MetricsConsumer , fieldName string , logger * zap.Logger ,
138
+ specifiedClients []string , host component.Host , nextConsumer * consumer.MetricsConsumer , fieldName string , exporterType configmodels. DataType , logger * zap.Logger ,
139
139
) (clients []* interface {}, wasNil bool ) {
140
140
if specifiedClients == nil {
141
141
wasNil = true
@@ -145,37 +145,39 @@ func getClientsFromMetricsExporters(
145
145
return
146
146
}
147
147
148
- builtExporters := host .GetExporters ()[configmodels .MetricsDataType ]
149
- for _ , client := range specifiedClients {
150
- var found bool
151
- for exporterConfig , exporter := range builtExporters {
152
- if exporterConfig .Name () == client {
153
- asInterface := exporter .(interface {})
154
- clients = append (clients , & asInterface )
155
- found = true
148
+ if builtExporters , ok := host .GetExporters ()[exporterType ]; ok {
149
+ for _ , client := range specifiedClients {
150
+ var found bool
151
+ for exporterConfig , exporter := range builtExporters {
152
+ if exporterConfig .Name () == client {
153
+ asInterface := exporter .(interface {})
154
+ clients = append (clients , & asInterface )
155
+ found = true
156
+ }
157
+ }
158
+ if ! found {
159
+ logger .Info (
160
+ fmt .Sprintf ("specified %s is not an available exporter" , fieldName ),
161
+ zap .String ("client" , client ),
162
+ )
156
163
}
157
- }
158
- if ! found {
159
- logger .Info (
160
- fmt .Sprintf ("specified %s is not an available exporter" , fieldName ),
161
- zap .String ("client" , client ),
162
- )
163
164
}
164
165
}
165
166
return
166
167
}
167
168
168
- func getLoneSFxExporter (host component.Host ) component.Exporter {
169
- builtExporters := host .GetExporters ()[configmodels .MetricsDataType ]
169
+ func getLoneSFxExporter (host component.Host , exporterType configmodels.DataType ) component.Exporter {
170
170
var sfxExporter component.Exporter
171
- for exporterConfig , exporter := range builtExporters {
172
- if exporterConfig .Type () == "signalfx" {
173
- if sfxExporter == nil {
174
- sfxExporter = exporter
175
- } else { // we've already found one so no lone instance to use as default
176
- return nil
177
- }
171
+ if builtExporters , ok := host .GetExporters ()[exporterType ]; ok {
172
+ for exporterConfig , exporter := range builtExporters {
173
+ if exporterConfig .Type () == "signalfx" {
174
+ if sfxExporter == nil {
175
+ sfxExporter = exporter
176
+ } else { // we've already found one so no lone instance to use as default
177
+ return nil
178
+ }
178
179
180
+ }
179
181
}
180
182
}
181
183
return sfxExporter
0 commit comments