Skip to content
Open
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/trace_writer.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ var (
_ tracestore.Writer = (*traceWriter)(nil)
_ io.Closer = (*traceWriter)(nil)

MaxChunkSize = 35 // max chunk size otel kafka export can handle safely.
MaxChunkSize = 5 // max chunk size otel kafka export can handle safely.
Copy link
Contributor Author

@Manik2708 Manik2708 Jan 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

reducing to this has passed the tests

)

// traceWriter utilizes the OTLP exporter to send span data to the Jaeger-v2 receiver
Expand Down
1 change: 1 addition & 0 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ require (
github.com/kylelemons/godebug v1.1.0 // indirect
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect
github.com/open-telemetry/opentelemetry-collector-contrib/internal/healthcheck v0.142.0 // indirect
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.142.0 // indirect
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect
github.com/prometheus/client_golang/exp v0.0.0-20250914183048-a974e0d45e0a // indirect
github.com/prometheus/otlptranslator v1.0.0 // indirect
Expand Down
43 changes: 43 additions & 0 deletions internal/storage/integration/dates.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
// Copyright (c) 2026 The Jaeger Authors.
// SPDX-License-Identifier: Apache-2.0

package integration

import (
"time"

"go.opentelemetry.io/collector/pdata/pcommon"
)

// dateOffsetNormalizer normalizes timestamps by replacing their date
// (year, month, day) with a fixed date computed using a day offset
// from the current UTC date, while preserving the original time
// This is required in integration tests because the fixtures have
// hardcoded start time and other time stamps and we need to make
// recent to fetch from the reader.
type dateOffsetNormalizer struct {
year, day int
month time.Month
}

func newDateOffsetNormalizer(dayOffset int) dateOffsetNormalizer {
now := time.Now().UTC()
d := dateOffsetNormalizer{}
d.year, d.month, d.day = now.AddDate(0, 0, dayOffset).Date()
return d
}

func (d dateOffsetNormalizer) normalize(t pcommon.Timestamp) pcommon.Timestamp {
tm := t.AsTime()
newTm := time.Date(
d.year,
d.month,
d.day,
tm.Hour(),
tm.Minute(),
tm.Second(),
tm.Nanosecond(),
tm.Location(),
)
return pcommon.NewTimestampFromTime(newTm)
}
37 changes: 37 additions & 0 deletions internal/storage/integration/dates_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
// Copyright (c) 2026 The Jaeger Authors.
// SPDX-License-Identifier: Apache-2.0

package integration

import (
"testing"
"time"

"github.com/stretchr/testify/assert"
"go.opentelemetry.io/collector/pdata/pcommon"
)

func Test_dateOffsetNormalizer(t *testing.T) {
origTime := time.Date(
2024, time.January, 10,
14, 30, 45, 123456789,
time.UTC,
)
origTs := pcommon.NewTimestampFromTime(origTime)
dayOffset := -2
normalizer := newDateOffsetNormalizer(dayOffset)
normalizedTs := normalizer.normalize(origTs)
normalizedTime := normalizedTs.AsTime()
expectedDate := time.Now().UTC().AddDate(0, 0, dayOffset)
expectedTime := time.Date(
expectedDate.Year(),
expectedDate.Month(),
expectedDate.Day(),
origTime.Hour(),
origTime.Minute(),
origTime.Second(),
origTime.Nanosecond(),
time.UTC,
)
assert.Equal(t, expectedTime, normalizedTime)
}
19 changes: 10 additions & 9 deletions internal/storage/integration/elasticsearch_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,10 @@ import (
"github.com/olivere/elastic/v7"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"go.opentelemetry.io/collector/pdata/ptrace"

"github.com/jaegertracing/jaeger-idl/model/v1"
"github.com/jaegertracing/jaeger/internal/jiter"
escfg "github.com/jaegertracing/jaeger/internal/storage/elasticsearch/config"
es "github.com/jaegertracing/jaeger/internal/storage/v1/elasticsearch"
"github.com/jaegertracing/jaeger/internal/storage/v2/api/depstore"
Expand Down Expand Up @@ -262,20 +264,19 @@ func (s *ESStorageIntegration) testArchiveTrace(t *testing.T) {
},
},
}
expectedTrace := v1adapter.V1TraceToOtelTrace(expected)
require.NoError(t, s.ArchiveTraceWriter.WriteTraces(context.Background(), expectedTrace))

require.NoError(t, s.ArchiveTraceWriter.WriteTraces(context.Background(), v1adapter.V1TraceToOtelTrace(expected)))

var actual *model.Trace
var actual ptrace.Traces
found := s.waitForCondition(t, func(_ *testing.T) bool {
var err error
iterTraces := s.ArchiveTraceReader.GetTraces(context.Background(), tracestore.GetTraceParams{TraceID: v1adapter.FromV1TraceID(tID)})
traces, err := v1adapter.V1TracesFromSeq2(iterTraces)
if len(traces) == 0 {
traceSlice, err := jiter.CollectWithErrors(iterTraces)
if err != nil {
return false
}
actual = traces[0]
return err == nil && len(actual.Spans) == 1
actual = mergeTraces(traceSlice)
return actual.SpanCount() == 1
})
require.True(t, found)
CompareTraces(t, expected, actual)
CompareTraces(t, expectedTrace, actual)
}
Loading
Loading