Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

[v2] Add logging to read/write spans in e2e tests #5456

Merged
merged 1 commit into from
May 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion cmd/jaeger/internal/integration/e2e_integration.go
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ func (s *E2EStorageIntegration) e2eInitialize(t *testing.T, storage string) {

s.SpanWriter, err = createSpanWriter(logger, otlpPort)
require.NoError(t, err)
s.SpanReader, err = createSpanReader(ports.QueryGRPC)
s.SpanReader, err = createSpanReader(logger, ports.QueryGRPC)
require.NoError(t, err)
}

Expand Down
15 changes: 14 additions & 1 deletion cmd/jaeger/internal/integration/span_reader.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import (
"math"
"strings"

"go.uber.org/zap"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials/insecure"
"google.golang.org/grpc/status"
Expand All @@ -28,11 +29,13 @@ var (

// SpanReader retrieve span data from Jaeger-v2 query with api_v2.QueryServiceClient.
type spanReader struct {
logger *zap.Logger
clientConn *grpc.ClientConn
client api_v2.QueryServiceClient
}

func createSpanReader(port int) (*spanReader, error) {
func createSpanReader(logger *zap.Logger, port int) (*spanReader, error) {
logger.Info("Creating the span reader", zap.Int("port", port))
opts := []grpc.DialOption{
grpc.WithTransportCredentials(insecure.NewCredentials()),
}
Expand All @@ -43,12 +46,14 @@ func createSpanReader(port int) (*spanReader, error) {
}

return &spanReader{
logger: logger,
clientConn: cc,
client: api_v2.NewQueryServiceClient(cc),
}, nil
}

func (r *spanReader) Close() error {
r.logger.Info("Closing the span writer")
return r.clientConn.Close()
}

Expand Down Expand Up @@ -77,7 +82,9 @@ func (r *spanReader) GetTrace(ctx context.Context, traceID model.TraceID) (*mode
for i := range received.Spans {
spans = append(spans, &received.Spans[i])
}
r.logger.Info(fmt.Sprintf("GetTrace received %d spans (total %d)", len(received.Spans), len(spans)))
}
r.logger.Info(fmt.Sprintf("GetTraces received a total of %d spans", len(spans)))

return &model.Trace{
Spans: spans,
Expand All @@ -89,6 +96,7 @@ func (r *spanReader) GetServices(ctx context.Context) ([]string, error) {
if err != nil {
return []string{}, err
}
r.logger.Info(fmt.Sprintf("Received %d services", len(res.Services)))
return res.Services, nil
}

Expand All @@ -101,6 +109,7 @@ func (r *spanReader) GetOperations(ctx context.Context, query spanstore.Operatio
if err != nil {
return operations, err
}
r.logger.Info(fmt.Sprintf("Received %d operations", len(res.Operations)))

for _, operation := range res.Operations {
operations = append(operations, spanstore.Operation{
Expand Down Expand Up @@ -133,6 +142,7 @@ func (r *spanReader) FindTraces(ctx context.Context, query *spanstore.TraceQuery
return traces, err
}

totalSpans := 0
spanMaps := map[string][]*model.Span{}
for received, err := stream.Recv(); !errors.Is(err, io.EOF); received, err = stream.Recv() {
if err != nil {
Expand All @@ -145,7 +155,10 @@ func (r *spanReader) FindTraces(ctx context.Context, query *spanstore.TraceQuery
}
spanMaps[traceID] = append(spanMaps[traceID], &received.Spans[i])
}
totalSpans += len(received.Spans)
r.logger.Info(fmt.Sprintf("FindTraces received %d spans (total %d)", len(received.Spans), totalSpans))
}
r.logger.Info(fmt.Sprintf("FindTraces received a total of %d spans", totalSpans))

for _, spans := range spanMaps {
traces = append(traces, &model.Trace{
Expand Down
5 changes: 5 additions & 0 deletions cmd/jaeger/internal/integration/span_writer.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,13 @@ var (

// SpanWriter utilizes the OTLP exporter to send span data to the Jaeger-v2 receiver
type spanWriter struct {
logger *zap.Logger
exporter exporter.Traces
}

func createSpanWriter(logger *zap.Logger, port int) (*spanWriter, error) {
logger.Info("Creating the span writer", zap.Int("port", port))

factory := otlpexporter.NewFactory()
cfg := factory.CreateDefaultConfig().(*otlpexporter.Config)
cfg.Endpoint = fmt.Sprintf("localhost:%d", port)
Expand All @@ -51,11 +54,13 @@ func createSpanWriter(logger *zap.Logger, port int) (*spanWriter, error) {
}

return &spanWriter{
logger: logger,
exporter: exporter,
}, nil
}

func (w *spanWriter) Close() error {
w.logger.Info("Closing the span writer")
return w.exporter.Shutdown(context.Background())
}

Expand Down
1 change: 1 addition & 0 deletions plugin/storage/integration/integration.go
Original file line number Diff line number Diff line change
Expand Up @@ -334,6 +334,7 @@ func (s *StorageIntegration) findTracesByQuery(t *testing.T, query *spanstore.Tr
}

func (s *StorageIntegration) writeTrace(t *testing.T, trace *model.Trace) {
t.Logf("%-23s Writing trace with %d spans", time.Now().Format("2006-01-02 15:04:05.999"), len(trace.Spans))
for _, span := range trace.Spans {
err := s.SpanWriter.WriteSpan(context.Background(), span)
require.NoError(t, err, "Not expecting error when writing trace to storage")
Expand Down
Loading