@@ -19,6 +19,7 @@ import (
19
19
"go.opentelemetry.io/collector/confmap/confmaptest"
20
20
"go.opentelemetry.io/collector/exporter/exporterhelper"
21
21
22
+ "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/clickhouseexporter/internal"
22
23
"github.com/open-telemetry/opentelemetry-collector-contrib/exporter/clickhouseexporter/internal/metadata"
23
24
)
24
25
@@ -47,15 +48,14 @@ func TestLoadConfig(t *testing.T) {
47
48
{
48
49
id : component .NewIDWithName (metadata .Type , "full" ),
49
50
expected : & Config {
50
- Endpoint : defaultEndpoint ,
51
- Database : "otel" ,
52
- Username : "foo" ,
53
- Password : "bar" ,
54
- TTL : 72 * time .Hour ,
55
- LogsTableName : "otel_logs" ,
56
- TracesTableName : "otel_traces" ,
57
- MetricsTableName : "otel_metrics" ,
58
- CreateSchema : true ,
51
+ Endpoint : defaultEndpoint ,
52
+ Database : "otel" ,
53
+ Username : "foo" ,
54
+ Password : "bar" ,
55
+ TTL : 72 * time .Hour ,
56
+ LogsTableName : "otel_logs" ,
57
+ TracesTableName : "otel_traces" ,
58
+ CreateSchema : true ,
59
59
TimeoutSettings : exporterhelper.TimeoutConfig {
60
60
Timeout : 5 * time .Second ,
61
61
},
@@ -67,6 +67,13 @@ func TestLoadConfig(t *testing.T) {
67
67
RandomizationFactor : backoff .DefaultRandomizationFactor ,
68
68
Multiplier : backoff .DefaultMultiplier ,
69
69
},
70
+ MetricsTables : MetricTablesConfig {
71
+ Gauge : internal.MetricTypeConfig {Name : "otel_metrics_custom_gauge" },
72
+ Sum : internal.MetricTypeConfig {Name : "otel_metrics_custom_sum" },
73
+ Summary : internal.MetricTypeConfig {Name : "otel_metrics_custom_summary" },
74
+ Histogram : internal.MetricTypeConfig {Name : "otel_metrics_custom_histogram" },
75
+ ExponentialHistogram : internal.MetricTypeConfig {Name : "otel_metrics_custom_exp_histogram" },
76
+ },
70
77
ConnectionParams : map [string ]string {},
71
78
QueueSettings : exporterhelper.QueueConfig {
72
79
Enabled : true ,
@@ -102,6 +109,123 @@ func withDefaultConfig(fns ...func(*Config)) *Config {
102
109
return cfg
103
110
}
104
111
112
+ func TestBuildMetricMetricTableNames (t * testing.T ) {
113
+ tests := []struct {
114
+ name string
115
+ cfg Config
116
+ want Config
117
+ }{
118
+ {
119
+ name : "nothing set" ,
120
+ cfg : Config {},
121
+ want : Config {
122
+ MetricsTables : MetricTablesConfig {
123
+ Gauge : internal.MetricTypeConfig {Name : "otel_metrics_gauge" },
124
+ Sum : internal.MetricTypeConfig {Name : "otel_metrics_sum" },
125
+ Summary : internal.MetricTypeConfig {Name : "otel_metrics_summary" },
126
+ Histogram : internal.MetricTypeConfig {Name : "otel_metrics_histogram" },
127
+ ExponentialHistogram : internal.MetricTypeConfig {Name : "otel_metrics_exponential_histogram" },
128
+ },
129
+ },
130
+ },
131
+ {
132
+ name : "only metric_table_name set" ,
133
+ cfg : Config {
134
+ MetricsTableName : "table_name" ,
135
+ },
136
+ want : Config {
137
+ MetricsTableName : "table_name" ,
138
+ MetricsTables : MetricTablesConfig {
139
+ Gauge : internal.MetricTypeConfig {Name : "table_name_gauge" },
140
+ Sum : internal.MetricTypeConfig {Name : "table_name_sum" },
141
+ Summary : internal.MetricTypeConfig {Name : "table_name_summary" },
142
+ Histogram : internal.MetricTypeConfig {Name : "table_name_histogram" },
143
+ ExponentialHistogram : internal.MetricTypeConfig {Name : "table_name_exponential_histogram" },
144
+ },
145
+ },
146
+ },
147
+ {
148
+ name : "only metric_tables set fully" ,
149
+ cfg : Config {
150
+ MetricsTables : MetricTablesConfig {
151
+ Gauge : internal.MetricTypeConfig {Name : "table_name_gauge" },
152
+ Sum : internal.MetricTypeConfig {Name : "table_name_sum" },
153
+ Summary : internal.MetricTypeConfig {Name : "table_name_summary" },
154
+ Histogram : internal.MetricTypeConfig {Name : "table_name_histogram" },
155
+ ExponentialHistogram : internal.MetricTypeConfig {Name : "table_name_exponential_histogram" },
156
+ },
157
+ },
158
+ want : Config {
159
+ MetricsTables : MetricTablesConfig {
160
+ Gauge : internal.MetricTypeConfig {Name : "table_name_gauge" },
161
+ Sum : internal.MetricTypeConfig {Name : "table_name_sum" },
162
+ Summary : internal.MetricTypeConfig {Name : "table_name_summary" },
163
+ Histogram : internal.MetricTypeConfig {Name : "table_name_histogram" },
164
+ ExponentialHistogram : internal.MetricTypeConfig {Name : "table_name_exponential_histogram" },
165
+ },
166
+ },
167
+ },
168
+ {
169
+ name : "only metric_tables set partially" ,
170
+ cfg : Config {
171
+ MetricsTables : MetricTablesConfig {
172
+ Summary : internal.MetricTypeConfig {Name : "table_name_summary" },
173
+ Histogram : internal.MetricTypeConfig {Name : "table_name_histogram" },
174
+ ExponentialHistogram : internal.MetricTypeConfig {Name : "table_name_exp_histogram" },
175
+ },
176
+ },
177
+ want : Config {
178
+ MetricsTables : MetricTablesConfig {
179
+ Gauge : internal.MetricTypeConfig {Name : "otel_metrics_gauge" },
180
+ Sum : internal.MetricTypeConfig {Name : "otel_metrics_sum" },
181
+ Summary : internal.MetricTypeConfig {Name : "table_name_summary" },
182
+ Histogram : internal.MetricTypeConfig {Name : "table_name_histogram" },
183
+ ExponentialHistogram : internal.MetricTypeConfig {Name : "table_name_exp_histogram" },
184
+ },
185
+ },
186
+ },
187
+ {
188
+ name : "only metric_tables set partially with metric_table_name" ,
189
+ cfg : Config {
190
+ MetricsTableName : "custom_name" ,
191
+ MetricsTables : MetricTablesConfig {
192
+ Summary : internal.MetricTypeConfig {Name : "table_name_summary" },
193
+ Histogram : internal.MetricTypeConfig {Name : "table_name_histogram" },
194
+ ExponentialHistogram : internal.MetricTypeConfig {Name : "table_name_exp_histogram" },
195
+ },
196
+ },
197
+ want : Config {
198
+ MetricsTableName : "custom_name" ,
199
+ MetricsTables : MetricTablesConfig {
200
+ Gauge : internal.MetricTypeConfig {Name : "otel_metrics_gauge" },
201
+ Sum : internal.MetricTypeConfig {Name : "otel_metrics_sum" },
202
+ Summary : internal.MetricTypeConfig {Name : "table_name_summary" },
203
+ Histogram : internal.MetricTypeConfig {Name : "table_name_histogram" },
204
+ ExponentialHistogram : internal.MetricTypeConfig {Name : "table_name_exp_histogram" },
205
+ },
206
+ },
207
+ },
208
+ }
209
+ for _ , tt := range tests {
210
+ t .Run (tt .name , func (t * testing.T ) {
211
+ tt .cfg .buildMetricTableNames ()
212
+ require .Equal (t , tt .want , tt .cfg )
213
+ })
214
+ }
215
+ }
216
+
217
+ func TestAreMetricTableNamesSet (t * testing.T ) {
218
+ cfg := Config {}
219
+ require .False (t , cfg .areMetricTableNamesSet ())
220
+
221
+ cfg = Config {
222
+ MetricsTables : MetricTablesConfig {
223
+ Gauge : internal.MetricTypeConfig {Name : "gauge" },
224
+ },
225
+ }
226
+ require .True (t , cfg .areMetricTableNamesSet ())
227
+ }
228
+
105
229
func TestConfig_buildDSN (t * testing.T ) {
106
230
type fields struct {
107
231
Endpoint string
0 commit comments