Skip to content

Commit 03630a1

Browse files
Frapschenatoulme
andauthored
[chore] move cassandra exporter to generated lifecycle tests (#30518)
Relates to #27849 duo to `cluster.CreateSession()` func, event if set `skip_lifecycle: true` the Lifecycle test still fail: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/1de0e36f76a5e6a9a9ced094b7b90529ea3beae6/exporter/cassandraexporter/exporter_logs.go#L26-L28 test log: ``` === RUN TestComponentLifecycle === RUN TestComponentLifecycle/logs-shutdown generated_component_test.go:75: Error Trace: /Users/fraps/daocloud/github-code/opentelemetry-collector-contrib/exporter/cassandraexporter/generated_component_test.go:75 Error: Received unexpected error: cannot configure cassandra traces exporter: gocql: unable to create session: unable to discover protocol version: dial tcp 127.0.0.1:9042: connect: connection refused Test: TestComponentLifecycle/logs-shutdown === RUN TestComponentLifecycle/logs-lifecycle === RUN TestComponentLifecycle/traces-shutdown generated_component_test.go:75: Error Trace: /Users/fraps/daocloud/github-code/opentelemetry-collector-contrib/exporter/cassandraexporter/generated_component_test.go:75 Error: Received unexpected error: cannot configure cassandra traces exporter: gocql: unable to create session: unable to discover protocol version: dial tcp 127.0.0.1:9042: connect: connection refused Test: TestComponentLifecycle/traces-shutdown ``` we need more discuss for it @atoulme --------- Co-authored-by: Antoine Toulme <[email protected]>
1 parent 16655fa commit 03630a1

File tree

7 files changed

+145
-42
lines changed

7 files changed

+145
-42
lines changed

exporter/cassandraexporter/exporter_logs.go

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -24,22 +24,9 @@ type logsExporter struct {
2424
cfg *Config
2525
}
2626

27-
func newLogsExporter(logger *zap.Logger, cfg *Config) (*logsExporter, error) {
28-
cluster, err := newCluster(cfg)
29-
if err != nil {
30-
return nil, err
31-
}
32-
cluster.Keyspace = cfg.Keyspace
33-
cluster.Consistency = gocql.Quorum
34-
cluster.Port = cfg.Port
35-
cluster.Timeout = cfg.Timeout
36-
37-
session, err := cluster.CreateSession()
38-
if err != nil {
39-
return nil, err
40-
}
27+
func newLogsExporter(logger *zap.Logger, cfg *Config) *logsExporter {
4128

42-
return &logsExporter{logger: logger, client: session, cfg: cfg}, nil
29+
return &logsExporter{logger: logger, cfg: cfg}
4330
}
4431

4532
func initializeLogKernel(cfg *Config) error {
@@ -91,6 +78,20 @@ func newCluster(cfg *Config) (*gocql.ClusterConfig, error) {
9178
}
9279

9380
func (e *logsExporter) Start(_ context.Context, _ component.Host) error {
81+
cluster, err := newCluster(e.cfg)
82+
if err != nil {
83+
return err
84+
}
85+
cluster.Keyspace = e.cfg.Keyspace
86+
cluster.Consistency = gocql.Quorum
87+
cluster.Port = e.cfg.Port
88+
cluster.Timeout = e.cfg.Timeout
89+
90+
session, err := cluster.CreateSession()
91+
if err != nil {
92+
return err
93+
}
94+
e.client = session
9495
initializeErr := initializeLogKernel(e.cfg)
9596
return initializeErr
9697
}

exporter/cassandraexporter/exporter_traces.go

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -22,22 +22,8 @@ type tracesExporter struct {
2222
cfg *Config
2323
}
2424

25-
func newTracesExporter(logger *zap.Logger, cfg *Config) (*tracesExporter, error) {
26-
cluster, err := newCluster(cfg)
27-
if err != nil {
28-
return nil, err
29-
}
30-
cluster.Keyspace = cfg.Keyspace
31-
cluster.Consistency = gocql.Quorum
32-
cluster.Port = cfg.Port
33-
cluster.Timeout = cfg.Timeout
34-
35-
session, err := cluster.CreateSession()
36-
if err != nil {
37-
return nil, err
38-
}
39-
40-
return &tracesExporter{logger: logger, client: session, cfg: cfg}, nil
25+
func newTracesExporter(logger *zap.Logger, cfg *Config) *tracesExporter {
26+
return &tracesExporter{logger: logger, cfg: cfg}
4127
}
4228

4329
func initializeTraceKernel(cfg *Config) error {
@@ -94,6 +80,20 @@ func parseCreateDatabaseSQL(cfg *Config) string {
9480
}
9581

9682
func (e *tracesExporter) Start(_ context.Context, _ component.Host) error {
83+
cluster, err := newCluster(e.cfg)
84+
if err != nil {
85+
return err
86+
}
87+
cluster.Keyspace = e.cfg.Keyspace
88+
cluster.Consistency = gocql.Quorum
89+
cluster.Port = e.cfg.Port
90+
cluster.Timeout = e.cfg.Timeout
91+
92+
session, err := cluster.CreateSession()
93+
if err != nil {
94+
return err
95+
}
96+
e.client = session
9797
initializeErr := initializeTraceKernel(e.cfg)
9898
return initializeErr
9999
}

exporter/cassandraexporter/factory.go

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ package cassandraexporter // import "github.com/open-telemetry/opentelemetry-col
55

66
import (
77
"context"
8-
"fmt"
98
"time"
109

1110
"go.opentelemetry.io/collector/component"
@@ -43,22 +42,14 @@ func createDefaultConfig() component.Config {
4342

4443
func createTracesExporter(ctx context.Context, set exporter.CreateSettings, cfg component.Config) (exporter.Traces, error) {
4544
c := cfg.(*Config)
46-
exp, err := newTracesExporter(set.Logger, c)
47-
48-
if err != nil {
49-
return nil, fmt.Errorf("cannot configure cassandra traces exporter: %w", err)
50-
}
45+
exp := newTracesExporter(set.Logger, c)
5146

5247
return exporterhelper.NewTracesExporter(ctx, set, cfg, exp.pushTraceData, exporterhelper.WithShutdown(exp.Shutdown), exporterhelper.WithStart(exp.Start))
5348
}
5449

5550
func createLogsExporter(ctx context.Context, set exporter.CreateSettings, cfg component.Config) (exporter.Logs, error) {
5651
c := cfg.(*Config)
57-
exp, err := newLogsExporter(set.Logger, c)
58-
59-
if err != nil {
60-
return nil, fmt.Errorf("cannot configure cassandra traces exporter: %w", err)
61-
}
52+
exp := newLogsExporter(set.Logger, c)
6253

6354
return exporterhelper.NewLogsExporter(ctx, set, cfg, exp.pushLogsData, exporterhelper.WithShutdown(exp.Shutdown), exporterhelper.WithStart(exp.Start))
6455
}

exporter/cassandraexporter/generated_component_test.go

Lines changed: 106 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

exporter/cassandraexporter/go.mod

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ require (
4747
go.opentelemetry.io/collector/config/configtelemetry v0.93.1-0.20240130182548-89388addcc7f // indirect
4848
go.opentelemetry.io/collector/consumer v0.93.1-0.20240130182548-89388addcc7f // indirect
4949
go.opentelemetry.io/collector/extension v0.93.1-0.20240130182548-89388addcc7f // indirect
50+
go.opentelemetry.io/collector/receiver v0.93.1-0.20240130182548-89388addcc7f // indirect
5051
go.opentelemetry.io/otel v1.22.0 // indirect
5152
go.opentelemetry.io/otel/exporters/prometheus v0.45.0 // indirect
5253
go.opentelemetry.io/otel/sdk v1.22.0 // indirect

exporter/cassandraexporter/go.sum

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

exporter/cassandraexporter/metadata.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,6 @@ status:
88
codeowners:
99
active: [atoulme, emreyalvac]
1010

11+
tests:
12+
config:
13+
skip_lifecycle: true

0 commit comments

Comments
 (0)