Skip to content

Commit

Permalink
[chore] move cassandra exporter to generated lifecycle tests (#30518)
Browse files Browse the repository at this point in the history
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]>
  • Loading branch information
Frapschen and atoulme authored Jan 31, 2024
1 parent 16655fa commit 03630a1
Show file tree
Hide file tree
Showing 7 changed files with 145 additions and 42 deletions.
31 changes: 16 additions & 15 deletions exporter/cassandraexporter/exporter_logs.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,22 +24,9 @@ type logsExporter struct {
cfg *Config
}

func newLogsExporter(logger *zap.Logger, cfg *Config) (*logsExporter, error) {
cluster, err := newCluster(cfg)
if err != nil {
return nil, err
}
cluster.Keyspace = cfg.Keyspace
cluster.Consistency = gocql.Quorum
cluster.Port = cfg.Port
cluster.Timeout = cfg.Timeout

session, err := cluster.CreateSession()
if err != nil {
return nil, err
}
func newLogsExporter(logger *zap.Logger, cfg *Config) *logsExporter {

return &logsExporter{logger: logger, client: session, cfg: cfg}, nil
return &logsExporter{logger: logger, cfg: cfg}
}

func initializeLogKernel(cfg *Config) error {
Expand Down Expand Up @@ -91,6 +78,20 @@ func newCluster(cfg *Config) (*gocql.ClusterConfig, error) {
}

func (e *logsExporter) Start(_ context.Context, _ component.Host) error {
cluster, err := newCluster(e.cfg)
if err != nil {
return err
}
cluster.Keyspace = e.cfg.Keyspace
cluster.Consistency = gocql.Quorum
cluster.Port = e.cfg.Port
cluster.Timeout = e.cfg.Timeout

session, err := cluster.CreateSession()
if err != nil {
return err
}
e.client = session
initializeErr := initializeLogKernel(e.cfg)
return initializeErr
}
Expand Down
32 changes: 16 additions & 16 deletions exporter/cassandraexporter/exporter_traces.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,22 +22,8 @@ type tracesExporter struct {
cfg *Config
}

func newTracesExporter(logger *zap.Logger, cfg *Config) (*tracesExporter, error) {
cluster, err := newCluster(cfg)
if err != nil {
return nil, err
}
cluster.Keyspace = cfg.Keyspace
cluster.Consistency = gocql.Quorum
cluster.Port = cfg.Port
cluster.Timeout = cfg.Timeout

session, err := cluster.CreateSession()
if err != nil {
return nil, err
}

return &tracesExporter{logger: logger, client: session, cfg: cfg}, nil
func newTracesExporter(logger *zap.Logger, cfg *Config) *tracesExporter {
return &tracesExporter{logger: logger, cfg: cfg}
}

func initializeTraceKernel(cfg *Config) error {
Expand Down Expand Up @@ -94,6 +80,20 @@ func parseCreateDatabaseSQL(cfg *Config) string {
}

func (e *tracesExporter) Start(_ context.Context, _ component.Host) error {
cluster, err := newCluster(e.cfg)
if err != nil {
return err
}
cluster.Keyspace = e.cfg.Keyspace
cluster.Consistency = gocql.Quorum
cluster.Port = e.cfg.Port
cluster.Timeout = e.cfg.Timeout

session, err := cluster.CreateSession()
if err != nil {
return err
}
e.client = session
initializeErr := initializeTraceKernel(e.cfg)
return initializeErr
}
Expand Down
13 changes: 2 additions & 11 deletions exporter/cassandraexporter/factory.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ package cassandraexporter // import "github.com/open-telemetry/opentelemetry-col

import (
"context"
"fmt"
"time"

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

func createTracesExporter(ctx context.Context, set exporter.CreateSettings, cfg component.Config) (exporter.Traces, error) {
c := cfg.(*Config)
exp, err := newTracesExporter(set.Logger, c)

if err != nil {
return nil, fmt.Errorf("cannot configure cassandra traces exporter: %w", err)
}
exp := newTracesExporter(set.Logger, c)

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

func createLogsExporter(ctx context.Context, set exporter.CreateSettings, cfg component.Config) (exporter.Logs, error) {
c := cfg.(*Config)
exp, err := newLogsExporter(set.Logger, c)

if err != nil {
return nil, fmt.Errorf("cannot configure cassandra traces exporter: %w", err)
}
exp := newLogsExporter(set.Logger, c)

return exporterhelper.NewLogsExporter(ctx, set, cfg, exp.pushLogsData, exporterhelper.WithShutdown(exp.Shutdown), exporterhelper.WithStart(exp.Start))
}
106 changes: 106 additions & 0 deletions exporter/cassandraexporter/generated_component_test.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions exporter/cassandraexporter/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ require (
go.opentelemetry.io/collector/config/configtelemetry v0.93.1-0.20240130182548-89388addcc7f // indirect
go.opentelemetry.io/collector/consumer v0.93.1-0.20240130182548-89388addcc7f // indirect
go.opentelemetry.io/collector/extension v0.93.1-0.20240130182548-89388addcc7f // indirect
go.opentelemetry.io/collector/receiver v0.93.1-0.20240130182548-89388addcc7f // indirect
go.opentelemetry.io/otel v1.22.0 // indirect
go.opentelemetry.io/otel/exporters/prometheus v0.45.0 // indirect
go.opentelemetry.io/otel/sdk v1.22.0 // indirect
Expand Down
1 change: 1 addition & 0 deletions exporter/cassandraexporter/go.sum

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions exporter/cassandraexporter/metadata.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,6 @@ status:
codeowners:
active: [atoulme, emreyalvac]

tests:
config:
skip_lifecycle: true

0 comments on commit 03630a1

Please sign in to comment.