Skip to content

Commit 9b1cc77

Browse files
Merge branch 'main' into add-splunk-rolling-restart-metric
2 parents f428e6a + b5b9824 commit 9b1cc77

File tree

29 files changed

+265
-214
lines changed

29 files changed

+265
-214
lines changed

examples/couchbase/docker-compose.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ services:
1717
depends_on:
1818
- couchbase
1919
prometheus:
20-
image: prom/prometheus:v3.2.1
20+
image: prom/prometheus:v3.3.0
2121
volumes:
2222
- ./prometheus-config.yaml:/etc/prometheus/prometheus.yml
2323
ports:

exporter/clickhouseexporter/config.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
type Config struct {
2323
// collectorVersion is the build version of the collector. This is overridden when an exporter is initialized.
2424
collectorVersion string
25+
driverName string // for testing
2526

2627
TimeoutSettings exporterhelper.TimeoutConfig `mapstructure:",squash"`
2728
configretry.BackOffConfig `mapstructure:"retry_on_failure"`
@@ -183,7 +184,7 @@ func (cfg *Config) buildDB() (*sql.DB, error) {
183184
// ClickHouse sql driver will read clickhouse settings from the DSN string.
184185
// It also ensures defaults.
185186
// See https://github.com/ClickHouse/clickhouse-go/blob/08b27884b899f587eb5c509769cd2bdf74a9e2a1/clickhouse_std.go#L189
186-
conn, err := sql.Open(driverName, dsn)
187+
conn, err := sql.Open(cfg.driverName, dsn)
187188
if err != nil {
188189
return nil, err
189190
}

exporter/clickhouseexporter/config_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ func TestLoadConfig(t *testing.T) {
4949
id: component.NewIDWithName(metadata.Type, "full"),
5050
expected: &Config{
5151
collectorVersion: "unknown",
52+
driverName: clickhouseDriverName,
5253
Endpoint: defaultEndpoint,
5354
Database: "otel",
5455
Username: "foo",

exporter/clickhouseexporter/example/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
FROM alpine:latest@sha256:a8560b36e8b8210634f77d9f7f9efd7ffa463e380b75e2e74aff4511df3ef88c AS certs
22
RUN apk --update add ca-certificates
33

4-
FROM golang:latest@sha256:fb224f950b0dfb889f8f1122bf3dfc21976735ccf983b73a1e6e014215a272f5
4+
FROM golang:latest@sha256:1ecc479bc712a6bdb56df3e346e33edcc141f469f82840bab9f4bc2bc41bf91d
55

66
ARG USER_UID=10001
77
USER ${USER_UID}

exporter/clickhouseexporter/exporter_logs.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -197,8 +197,6 @@ SETTINGS index_granularity = 8192, ttl_only_drop_parts = 1;
197197
)`
198198
)
199199

200-
var driverName = "clickhouse" // for testing
201-
202200
// newClickhouseClient create a clickhouse client.
203201
func newClickhouseClient(cfg *Config) (*sql.DB, error) {
204202
db, err := cfg.buildDB()

exporter/clickhouseexporter/exporter_logs_test.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ func TestExporter_pushLogsData(t *testing.T) {
8181
return nil
8282
})
8383

84-
exporter := newTestLogsExporter(t, defaultEndpoint)
84+
exporter := newTestLogsExporter(t, defaultEndpoint, withDriverName(t.Name()))
8585
mustPushLogsData(t, exporter, simpleLogs(1))
8686
mustPushLogsData(t, exporter, simpleLogs(2))
8787

@@ -97,7 +97,7 @@ func TestExporter_pushLogsData(t *testing.T) {
9797
}
9898
return nil
9999
})
100-
exporter := newTestLogsExporter(t, defaultEndpoint)
100+
exporter := newTestLogsExporter(t, defaultEndpoint, withDriverName(t.Name()))
101101
mustPushLogsData(t, exporter, simpleLogs(1))
102102
})
103103
t.Run("test check scope metadata", func(t *testing.T) {
@@ -112,7 +112,7 @@ func TestExporter_pushLogsData(t *testing.T) {
112112
}
113113
return nil
114114
})
115-
exporter := newTestLogsExporter(t, defaultEndpoint)
115+
exporter := newTestLogsExporter(t, defaultEndpoint, withDriverName(t.Name()))
116116
mustPushLogsData(t, exporter, simpleLogs(1))
117117
})
118118
t.Run("test with only observed timestamp", func(t *testing.T) {
@@ -123,7 +123,7 @@ func TestExporter_pushLogsData(t *testing.T) {
123123
return nil
124124
})
125125

126-
exporter := newTestLogsExporter(t, defaultEndpoint)
126+
exporter := newTestLogsExporter(t, defaultEndpoint, withDriverName(t.Name()))
127127
mustPushLogsData(t, exporter, simpleLogsWithNoTimestamp(1))
128128
})
129129
t.Run("test with 2 log records with different service.name", func(t *testing.T) {
@@ -139,20 +139,22 @@ func TestExporter_pushLogsData(t *testing.T) {
139139
return nil
140140
})
141141

142-
exporter := newTestLogsExporter(t, defaultEndpoint)
142+
exporter := newTestLogsExporter(t, defaultEndpoint, withDriverName(t.Name()))
143143
mustPushLogsData(t, exporter, multipleLogsWithDifferentServiceName(1))
144144
})
145145
}
146146

147147
func TestLogsClusterConfig(t *testing.T) {
148148
testClusterConfig(t, func(t *testing.T, dsn string, clusterTest clusterTestConfig, fns ...func(*Config)) {
149+
fns = append(fns, withDriverName(t.Name()))
149150
exporter := newTestLogsExporter(t, dsn, fns...)
150151
clusterTest.verifyConfig(t, exporter.cfg)
151152
})
152153
}
153154

154155
func TestLogsTableEngineConfig(t *testing.T) {
155156
testTableEngineConfig(t, func(t *testing.T, dsn string, engineTest tableEngineTestConfig, fns ...func(*Config)) {
157+
fns = append(fns, withDriverName(t.Name()))
156158
exporter := newTestLogsExporter(t, dsn, fns...)
157159
engineTest.verifyConfig(t, exporter.cfg.TableEngine)
158160
})
@@ -259,7 +261,6 @@ func mustPushLogsData(t *testing.T, exporter *logsExporter, ld plog.Logs) {
259261
}
260262

261263
func initClickhouseTestServer(t *testing.T, recorder recorder) {
262-
driverName = t.Name()
263264
sql.Register(t.Name(), &testClickhouseDriver{
264265
recorder: recorder,
265266
})

exporter/clickhouseexporter/exporter_metrics_test.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,15 @@ import (
2424

2525
func TestMetricsClusterConfig(t *testing.T) {
2626
testClusterConfig(t, func(t *testing.T, dsn string, clusterTest clusterTestConfig, fns ...func(*Config)) {
27+
fns = append(fns, withDriverName(t.Name()))
2728
exporter := newTestMetricsExporter(t, dsn, fns...)
2829
clusterTest.verifyConfig(t, exporter.cfg)
2930
})
3031
}
3132

3233
func TestMetricsTableEngineConfig(t *testing.T) {
3334
testTableEngineConfig(t, func(t *testing.T, dsn string, engineTest tableEngineTestConfig, fns ...func(*Config)) {
35+
fns = append(fns, withDriverName(t.Name()))
3436
exporter := newTestMetricsExporter(t, dsn, fns...)
3537
engineTest.verifyConfig(t, exporter.cfg.TableEngine)
3638
})
@@ -66,7 +68,7 @@ func TestExporter_pushMetricsData(t *testing.T) {
6668
}
6769
return nil
6870
})
69-
exporter := newTestMetricsExporter(t, defaultEndpoint)
71+
exporter := newTestMetricsExporter(t, defaultEndpoint, withDriverName(t.Name()))
7072
mustPushMetricsData(t, exporter, simpleMetrics(1))
7173

7274
require.Equal(t, int32(15), items.Load())
@@ -78,7 +80,7 @@ func TestExporter_pushMetricsData(t *testing.T) {
7880
}
7981
return nil
8082
})
81-
exporter := newTestMetricsExporter(t, defaultEndpoint)
83+
exporter := newTestMetricsExporter(t, defaultEndpoint, withDriverName(t.Name()))
8284
err := exporter.pushMetricsData(context.TODO(), simpleMetrics(2))
8385
require.Error(t, err)
8486
})
@@ -130,7 +132,7 @@ func TestExporter_pushMetricsData(t *testing.T) {
130132
}
131133
return nil
132134
})
133-
exporter := newTestMetricsExporter(t, defaultEndpoint)
135+
exporter := newTestMetricsExporter(t, defaultEndpoint, withDriverName(t.Name()))
134136
mustPushMetricsData(t, exporter, simpleMetrics(1))
135137

136138
require.Equal(t, int32(15), items.Load())
@@ -155,7 +157,7 @@ func TestExporter_pushMetricsData(t *testing.T) {
155157
}
156158
return nil
157159
})
158-
exporter := newTestMetricsExporter(t, defaultEndpoint)
160+
exporter := newTestMetricsExporter(t, defaultEndpoint, withDriverName(t.Name()))
159161
mustPushMetricsData(t, exporter, simpleMetrics(1))
160162
})
161163
}

exporter/clickhouseexporter/exporter_sql_test.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,12 @@ type (
2222
}
2323
)
2424

25+
func withDriverName(driverName string) func(*Config) {
26+
return func(c *Config) {
27+
c.driverName = driverName
28+
}
29+
}
30+
2531
func (test clusterTestConfig) verifyConfig(t *testing.T, cfg *Config) {
2632
if test.cluster == "" {
2733
require.Empty(t, cfg.clusterString())

exporter/clickhouseexporter/exporter_traces_test.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ func TestExporter_pushTracesData(t *testing.T) {
2828
return nil
2929
})
3030

31-
exporter := newTestTracesExporter(t, defaultEndpoint)
31+
exporter := newTestTracesExporter(t, defaultEndpoint, withDriverName(t.Name()))
3232
mustPushTracesData(t, exporter, simpleTraces(1))
3333
mustPushTracesData(t, exporter, simpleTraces(2))
3434

@@ -43,7 +43,7 @@ func TestExporter_pushTracesData(t *testing.T) {
4343
return nil
4444
})
4545

46-
exporter := newTestTracesExporter(t, defaultEndpoint)
46+
exporter := newTestTracesExporter(t, defaultEndpoint, withDriverName(t.Name()))
4747
mustPushTracesData(t, exporter, simpleTraces(1))
4848
})
4949
}
@@ -103,13 +103,15 @@ func mustPushTracesData(t *testing.T, exporter *tracesExporter, td ptrace.Traces
103103

104104
func TestTracesClusterConfig(t *testing.T) {
105105
testClusterConfig(t, func(t *testing.T, dsn string, clusterTest clusterTestConfig, fns ...func(*Config)) {
106+
fns = append(fns, withDriverName(t.Name()))
106107
exporter := newTestTracesExporter(t, dsn, fns...)
107108
clusterTest.verifyConfig(t, exporter.cfg)
108109
})
109110
}
110111

111112
func TestTracesTableEngineConfig(t *testing.T) {
112113
testTableEngineConfig(t, func(t *testing.T, dsn string, engineTest tableEngineTestConfig, fns ...func(*Config)) {
114+
fns = append(fns, withDriverName(t.Name()))
113115
exporter := newTestTracesExporter(t, dsn, fns...)
114116
engineTest.verifyConfig(t, exporter.cfg.TableEngine)
115117
})

exporter/clickhouseexporter/factory.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ import (
1919
"github.com/open-telemetry/opentelemetry-collector-contrib/exporter/clickhouseexporter/internal/metadata"
2020
)
2121

22+
const clickhouseDriverName = "clickhouse"
23+
2224
// NewFactory creates a factory for ClickHouse exporter.
2325
func NewFactory() exporter.Factory {
2426
return exporter.NewFactory(
@@ -33,6 +35,7 @@ func NewFactory() exporter.Factory {
3335
func createDefaultConfig() component.Config {
3436
return &Config{
3537
collectorVersion: "unknown",
38+
driverName: clickhouseDriverName,
3639

3740
TimeoutSettings: exporterhelper.NewDefaultTimeoutConfig(),
3841
QueueSettings: exporterhelper.NewDefaultQueueConfig(),

exporter/clickhouseexporter/integration_test.go

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -26,19 +26,18 @@ func TestIntegration(t *testing.T) {
2626
name string
2727
image string
2828
}{
29-
// TODO: Skipping due to https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/32530
30-
// {
31-
// name: "test clickhouse 24-alpine",
32-
// image: "clickhouse/clickhouse-server:24-alpine",
33-
// },
34-
// {
35-
// name: "test clickhouse 23-alpine",
36-
// image: "clickhouse/clickhouse-server:23-alpine",
37-
// },
38-
// {
39-
// name: "test clickhouse 22-alpine",
40-
// image: "clickhouse/clickhouse-server:22-alpine",
41-
// },
29+
{
30+
name: "test clickhouse 24-alpine",
31+
image: "clickhouse/clickhouse-server:24-alpine",
32+
},
33+
{
34+
name: "test clickhouse 23-alpine",
35+
image: "clickhouse/clickhouse-server:23-alpine",
36+
},
37+
{
38+
name: "test clickhouse 22-alpine",
39+
image: "clickhouse/clickhouse-server:22-alpine",
40+
},
4241
}
4342

4443
for _, c := range testCase {
@@ -91,7 +90,7 @@ func getContainer(t *testing.T, req testcontainers.ContainerRequest) testcontain
9190

9291
func verifyExportLog(t *testing.T, logExporter *logsExporter) {
9392
mustPushLogsData(t, logExporter, simpleLogs(1))
94-
db := sqlx.NewDb(logExporter.client, driverName)
93+
db := sqlx.NewDb(logExporter.client, clickhouseDriverName)
9594

9695
type log struct {
9796
Timestamp string `db:"Timestamp"`
@@ -145,7 +144,7 @@ func verifyExportLog(t *testing.T, logExporter *logsExporter) {
145144

146145
func verifyExporterTrace(t *testing.T, traceExporter *tracesExporter) {
147146
mustPushTracesData(t, traceExporter, simpleTraces(1))
148-
db := sqlx.NewDb(traceExporter.client, driverName)
147+
db := sqlx.NewDb(traceExporter.client, clickhouseDriverName)
149148

150149
type trace struct {
151150
Timestamp string `db:"Timestamp"`
@@ -230,7 +229,7 @@ func verifyExporterMetric(t *testing.T, metricExporter *metricsExporter) {
230229
simpleMetrics(1).ResourceMetrics().At(0).CopyTo(rm)
231230

232231
mustPushMetricsData(t, metricExporter, metric)
233-
db := sqlx.NewDb(metricExporter.client, driverName)
232+
db := sqlx.NewDb(metricExporter.client, clickhouseDriverName)
234233

235234
verifyGaugeMetric(t, db)
236235
verifySumMetric(t, db)
@@ -301,7 +300,6 @@ func verifyGaugeMetric(t *testing.T, db *sqlx.DB) {
301300
ExemplarsSpanID: []string{"0102030000000000"},
302301
ExemplarsValue: []float64{54},
303302
}
304-
305303
err := db.Get(&actualGauge, "select * from default.otel_metrics_gauge")
306304
require.NoError(t, err)
307305
require.Equal(t, expectGauge, actualGauge)

exporter/googlecloudpubsubexporter/go.mod

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ require (
1818
go.uber.org/goleak v1.3.0
1919
go.uber.org/multierr v1.11.0
2020
go.uber.org/zap v1.27.0
21-
google.golang.org/api v0.228.0
21+
google.golang.org/api v0.229.0
2222
google.golang.org/grpc v1.71.1
2323
)
2424

2525
require (
26-
cloud.google.com/go/auth v0.15.0 // indirect
26+
cloud.google.com/go/auth v0.16.0 // indirect
2727
cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect
2828
cloud.google.com/go/compute/metadata v0.6.0 // indirect
2929
cloud.google.com/go/iam v1.4.2 // indirect
@@ -61,24 +61,24 @@ require (
6161
go.opentelemetry.io/collector/receiver/receivertest v0.124.0 // indirect
6262
go.opentelemetry.io/collector/receiver/xreceiver v0.124.0 // indirect
6363
go.opentelemetry.io/contrib/bridges/otelzap v0.10.0 // indirect
64-
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.59.0 // indirect
65-
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0 // indirect
64+
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 // indirect
65+
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0 // indirect
6666
go.opentelemetry.io/otel v1.35.0 // indirect
6767
go.opentelemetry.io/otel/log v0.11.0 // indirect
6868
go.opentelemetry.io/otel/metric v1.35.0 // indirect
6969
go.opentelemetry.io/otel/sdk v1.35.0 // indirect
7070
go.opentelemetry.io/otel/sdk/metric v1.35.0 // indirect
7171
go.opentelemetry.io/otel/trace v1.35.0 // indirect
72-
golang.org/x/crypto v0.36.0 // indirect
73-
golang.org/x/net v0.37.0 // indirect
74-
golang.org/x/oauth2 v0.28.0 // indirect
75-
golang.org/x/sync v0.12.0 // indirect
76-
golang.org/x/sys v0.31.0 // indirect
77-
golang.org/x/text v0.23.0 // indirect
72+
golang.org/x/crypto v0.37.0 // indirect
73+
golang.org/x/net v0.39.0 // indirect
74+
golang.org/x/oauth2 v0.29.0 // indirect
75+
golang.org/x/sync v0.13.0 // indirect
76+
golang.org/x/sys v0.32.0 // indirect
77+
golang.org/x/text v0.24.0 // indirect
7878
golang.org/x/time v0.11.0 // indirect
7979
google.golang.org/genproto v0.0.0-20250303144028-a0af3efb3deb // indirect
8080
google.golang.org/genproto/googleapis/api v0.0.0-20250313205543-e70fdf4c4cb4 // indirect
81-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250313205543-e70fdf4c4cb4 // indirect
81+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250414145226-207652e42e2e // indirect
8282
google.golang.org/protobuf v1.36.6 // indirect
8383
gopkg.in/yaml.v3 v3.0.1 // indirect
8484
)

0 commit comments

Comments
 (0)