Skip to content

[test] Upgrade span_tags_trace.json from v1 model to ptrace.Traces#8044

Merged
yurishkuro merged 19 commits intojaegertracing:mainfrom
Manik2708:swap-init
Feb 21, 2026
Merged

[test] Upgrade span_tags_trace.json from v1 model to ptrace.Traces#8044
yurishkuro merged 19 commits intojaegertracing:mainfrom
Manik2708:swap-init

Conversation

@Manik2708
Copy link
Copy Markdown
Contributor

Which problem is this PR solving?

Description of the changes

  • This init the environment to swap fixtures with v2. One of the fixtures is also swapped here.

How was this change tested?

  • Unit and Integration tests

Checklist

AI Usage in this PR (choose one)

See AI Usage Policy.

  • None: No AI tools were used in creating this PR
  • Light: AI provided minor assistance (formatting, simple suggestions)
  • Moderate: AI helped with code generation or debugging specific parts
  • Heavy: AI generated most or all of the code changes

Signed-off-by: Manik Mehta <mehtamanik96@gmail.com>
@Manik2708 Manik2708 requested a review from a team as a code owner February 12, 2026 09:39
Copilot AI review requested due to automatic review settings February 12, 2026 09:39
@dosubot dosubot bot added the area/storage label Feb 12, 2026
@codecov
Copy link
Copy Markdown

codecov bot commented Feb 12, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 95.50%. Comparing base (1d8d2b8) to head (81d7144).
⚠️ Report is 6 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #8044      +/-   ##
==========================================
+ Coverage   95.49%   95.50%   +0.01%     
==========================================
  Files         316      316              
  Lines       16756    16756              
==========================================
+ Hits        16001    16003       +2     
+ Misses        590      589       -1     
+ Partials      165      164       -1     
Flag Coverage Δ
badger_v1 9.13% <ø> (ø)
badger_v2 1.34% <ø> (ø)
cassandra-4.x-v1-manual 13.32% <ø> (ø)
cassandra-4.x-v2-auto 1.33% <ø> (ø)
cassandra-4.x-v2-manual 1.33% <ø> (ø)
cassandra-5.x-v1-manual 13.32% <ø> (ø)
cassandra-5.x-v2-auto 1.33% <ø> (ø)
cassandra-5.x-v2-manual 1.33% <ø> (ø)
clickhouse 1.42% <ø> (ø)
elasticsearch-6.x-v1 16.90% <ø> (ø)
elasticsearch-7.x-v1 16.93% <ø> (ø)
elasticsearch-8.x-v1 17.08% <ø> (ø)
elasticsearch-8.x-v2 1.34% <ø> (ø)
elasticsearch-9.x-v2 1.39% <ø> (+0.04%) ⬆️
grpc_v1 8.12% <ø> (ø)
grpc_v2 1.34% <ø> (ø)
kafka-3.x-v2 1.34% <ø> (ø)
memory_v2 1.34% <ø> (ø)
opensearch-1.x-v1 16.97% <ø> (ø)
opensearch-2.x-v1 16.97% <ø> (ø)
opensearch-2.x-v2 1.34% <ø> (ø)
opensearch-3.x-v2 1.34% <ø> (ø)
query 1.34% <ø> (ø)
tailsampling-processor 0.54% <ø> (ø)
unittests 94.19% <ø> (+0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Feb 12, 2026

Metrics Comparison Summary

Total changes across all snapshots: 69

Detailed changes per snapshot

summary_metrics_snapshot_elasticsearch

📊 Metrics Diff Summary

Total Changes: 37

  • 🆕 Added: 0 metrics
  • ❌ Removed: 37 metrics
  • 🔄 Modified: 0 metrics
  • 🚫 Excluded: 0 metrics

❌ Removed Metrics

  • jaeger_storage_latency_seconds (18 variants)
View diff sample
-jaeger_storage_latency_seconds{le="+Inf",name="some_storage",operation="find_traces",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",result="err",role="tracestore"}
-jaeger_storage_latency_seconds{le="0",name="some_storage",operation="find_traces",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",result="err",role="tracestore"}
-jaeger_storage_latency_seconds{le="10",name="some_storage",operation="find_traces",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",result="err",role="tracestore"}
-jaeger_storage_latency_seconds{le="100",name="some_storage",operation="find_traces",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",result="err",role="tracestore"}
-jaeger_storage_latency_seconds{le="1000",name="some_storage",operation="find_traces",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",result="err",role="tracestore"}
-jaeger_storage_latency_seconds{le="10000",name="some_storage",operation="find_traces",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",result="err",role="tracestore"}
-jaeger_storage_latency_seconds{le="25",name="some_storage",operation="find_traces",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",result="err",role="tracestore"}
...
- `jaeger_storage_requests` (1 variants)
View diff sample
-jaeger_storage_requests{name="some_storage",operation="find_traces",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",result="err",role="tracestore"}
- `rpc_server_call_duration_seconds` (18 variants)
View diff sample
-rpc_server_call_duration_seconds{le="+Inf",otel_scope_name="go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc",otel_scope_schema_url="https://opentelemetry.io/schemas/1.39.0",otel_scope_version="0.65.0",rpc_method="jaeger.api_v3.QueryService/FindTraces",rpc_response_status_code="Unknown",rpc_system_name="grpc"}
-rpc_server_call_duration_seconds{le="0",otel_scope_name="go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc",otel_scope_schema_url="https://opentelemetry.io/schemas/1.39.0",otel_scope_version="0.65.0",rpc_method="jaeger.api_v3.QueryService/FindTraces",rpc_response_status_code="Unknown",rpc_system_name="grpc"}
-rpc_server_call_duration_seconds{le="10",otel_scope_name="go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc",otel_scope_schema_url="https://opentelemetry.io/schemas/1.39.0",otel_scope_version="0.65.0",rpc_method="jaeger.api_v3.QueryService/FindTraces",rpc_response_status_code="Unknown",rpc_system_name="grpc"}
-rpc_server_call_duration_seconds{le="100",otel_scope_name="go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc",otel_scope_schema_url="https://opentelemetry.io/schemas/1.39.0",otel_scope_version="0.65.0",rpc_method="jaeger.api_v3.QueryService/FindTraces",rpc_response_status_code="Unknown",rpc_system_name="grpc"}
-rpc_server_call_duration_seconds{le="1000",otel_scope_name="go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc",otel_scope_schema_url="https://opentelemetry.io/schemas/1.39.0",otel_scope_version="0.65.0",rpc_method="jaeger.api_v3.QueryService/FindTraces",rpc_response_status_code="Unknown",rpc_system_name="grpc"}
-rpc_server_call_duration_seconds{le="10000",otel_scope_name="go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc",otel_scope_schema_url="https://opentelemetry.io/schemas/1.39.0",otel_scope_version="0.65.0",rpc_method="jaeger.api_v3.QueryService/FindTraces",rpc_response_status_code="Unknown",rpc_system_name="grpc"}
-rpc_server_call_duration_seconds{le="25",otel_scope_name="go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc",otel_scope_schema_url="https://opentelemetry.io/schemas/1.39.0",otel_scope_version="0.65.0",rpc_method="jaeger.api_v3.QueryService/FindTraces",rpc_response_status_code="Unknown",rpc_system_name="grpc"}
...
### summary_metrics_snapshot_cassandra ## 📊 Metrics Diff Summary

Total Changes: 0

  • 🆕 Added: 0 metrics
  • ❌ Removed: 0 metrics
  • 🔄 Modified: 0 metrics
  • 🚫 Excluded: 106 metrics

summary_metrics_snapshot_cassandra

📊 Metrics Diff Summary

Total Changes: 0

  • 🆕 Added: 0 metrics
  • ❌ Removed: 0 metrics
  • 🔄 Modified: 0 metrics
  • 🚫 Excluded: 106 metrics

summary_metrics_snapshot_cassandra

📊 Metrics Diff Summary

Total Changes: 0

  • 🆕 Added: 0 metrics
  • ❌ Removed: 0 metrics
  • 🔄 Modified: 0 metrics
  • 🚫 Excluded: 106 metrics

summary_metrics_snapshot_cassandra

📊 Metrics Diff Summary

Total Changes: 0

  • 🆕 Added: 0 metrics
  • ❌ Removed: 0 metrics
  • 🔄 Modified: 0 metrics
  • 🚫 Excluded: 106 metrics

summary_metrics_snapshot_badger

📊 Metrics Diff Summary

Total Changes: 32

  • 🆕 Added: 0 metrics
  • ❌ Removed: 32 metrics
  • 🔄 Modified: 0 metrics
  • 🚫 Excluded: 0 metrics

❌ Removed Metrics

  • jaeger_storage_badger_compaction_current_num_lsm (2 variants)
View diff sample
-jaeger_storage_badger_compaction_current_num_lsm{name="another_store",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",role="tracestore"}
-jaeger_storage_badger_compaction_current_num_lsm{name="some_store",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",role="tracestore"}
- `jaeger_storage_badger_get_num_memtable` (2 variants)
View diff sample
-jaeger_storage_badger_get_num_memtable{name="another_store",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",role="tracestore"}
-jaeger_storage_badger_get_num_memtable{name="some_store",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",role="tracestore"}
- `jaeger_storage_badger_get_num_user` (2 variants)
View diff sample
-jaeger_storage_badger_get_num_user{name="another_store",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",role="tracestore"}
-jaeger_storage_badger_get_num_user{name="some_store",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",role="tracestore"}
- `jaeger_storage_badger_get_with_result_num_user` (2 variants)
View diff sample
-jaeger_storage_badger_get_with_result_num_user{name="another_store",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",role="tracestore"}
-jaeger_storage_badger_get_with_result_num_user{name="some_store",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",role="tracestore"}
- `jaeger_storage_badger_iterator_num_user` (2 variants)
View diff sample
-jaeger_storage_badger_iterator_num_user{name="another_store",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",role="tracestore"}
-jaeger_storage_badger_iterator_num_user{name="some_store",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",role="tracestore"}
- `jaeger_storage_badger_put_num_user` (2 variants)
View diff sample
-jaeger_storage_badger_put_num_user{name="another_store",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",role="tracestore"}
-jaeger_storage_badger_put_num_user{name="some_store",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",role="tracestore"}
- `jaeger_storage_badger_read_bytes_lsm` (2 variants)
View diff sample
-jaeger_storage_badger_read_bytes_lsm{name="another_store",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",role="tracestore"}
-jaeger_storage_badger_read_bytes_lsm{name="some_store",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",role="tracestore"}
- `jaeger_storage_badger_read_bytes_vlog` (2 variants)
View diff sample
-jaeger_storage_badger_read_bytes_vlog{name="another_store",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",role="tracestore"}
-jaeger_storage_badger_read_bytes_vlog{name="some_store",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",role="tracestore"}
- `jaeger_storage_badger_read_num_vlog` (2 variants)
View diff sample
-jaeger_storage_badger_read_num_vlog{name="another_store",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",role="tracestore"}
-jaeger_storage_badger_read_num_vlog{name="some_store",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",role="tracestore"}
- `jaeger_storage_badger_size_bytes_lsm` (2 variants)
View diff sample
-jaeger_storage_badger_size_bytes_lsm{name="another_store",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",role="tracestore"}
-jaeger_storage_badger_size_bytes_lsm{name="some_store",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",role="tracestore"}
- `jaeger_storage_badger_size_bytes_vlog` (2 variants)
View diff sample
-jaeger_storage_badger_size_bytes_vlog{name="another_store",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",role="tracestore"}
-jaeger_storage_badger_size_bytes_vlog{name="some_store",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",role="tracestore"}
- `jaeger_storage_badger_write_bytes_l0` (2 variants)
View diff sample
-jaeger_storage_badger_write_bytes_l0{name="another_store",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",role="tracestore"}
-jaeger_storage_badger_write_bytes_l0{name="some_store",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",role="tracestore"}
- `jaeger_storage_badger_write_bytes_user` (2 variants)
View diff sample
-jaeger_storage_badger_write_bytes_user{name="another_store",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",role="tracestore"}
-jaeger_storage_badger_write_bytes_user{name="some_store",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",role="tracestore"}
- `jaeger_storage_badger_write_bytes_vlog` (2 variants)
View diff sample
-jaeger_storage_badger_write_bytes_vlog{name="another_store",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",role="tracestore"}
-jaeger_storage_badger_write_bytes_vlog{name="some_store",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",role="tracestore"}
- `jaeger_storage_badger_write_num_vlog` (2 variants)
View diff sample
-jaeger_storage_badger_write_num_vlog{name="another_store",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",role="tracestore"}
-jaeger_storage_badger_write_num_vlog{name="some_store",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",role="tracestore"}
- `jaeger_storage_badger_write_pending_num_memtable` (2 variants)
View diff sample
-jaeger_storage_badger_write_pending_num_memtable{name="another_store",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",role="tracestore"}
-jaeger_storage_badger_write_pending_num_memtable{name="some_store",otel_scope_name="jaeger-v2",otel_scope_schema_url="",otel_scope_version="",role="tracestore"}

➡️ View full metrics file

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Updates the storage integration test harness to support trace fixtures stored directly as OTLP JSON (ptrace.Traces), enabling incremental migration of existing v1-model fixtures toward the v2 storage API test flow (part of #7050).

Changes:

  • Adds an IsOtelTrace flag to query fixtures and threads it through fixture loading to choose the correct unmarshal path (v1 model JSONPB vs OTLP JSON).
  • Migrates span_tags_trace.json from v1 model JSON to OTLP JSON and updates queries.json to mark it as OTLP.
  • Introduces timestamp normalization for OTLP traces (dateOffsetNormalizer) plus a unit test.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
internal/storage/integration/integration.go Adds OTLP fixture loading path and plumbs an IsOtelTrace switch through the integration tests.
internal/storage/integration/fixtures/traces/span_tags_trace.json Converts one trace fixture to OTLP JSON (resourceSpans/scopeSpans/spans).
internal/storage/integration/fixtures/queries.json Marks the migrated fixture as OTLP via IsOtelTrace.
internal/storage/integration/dates.go Adds date normalization logic for OTLP traces to keep fixtures “recent” for queries.
internal/storage/integration/dates_test.go Adds unit test coverage for the date normalization.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +15 to +40
func Test_dateOffsetNormalizer(t *testing.T) {
origTime := time.Date(
2024, time.January, 10,
14, 30, 45, 123456789,
time.UTC,
)
origStartTime := time.Date(
2017, time.January, 25,
23, 56, 31, 639875000,
time.UTC,
)
origTs := pcommon.NewTimestampFromTime(origTime)
origStartTs := pcommon.NewTimestampFromTime(origStartTime)
twoDaysAgo := -2
oneDayAgo := -1
now := time.Now()
expectedTwoDaysAgo := now.UTC().AddDate(0, 0, twoDaysAgo)
expectedOneDayAgo := now.UTC().AddDate(0, 0, oneDayAgo)
normalizer := newDateOffsetNormalizer(now)
td := ptrace.NewTraces()
span := td.ResourceSpans().AppendEmpty().ScopeSpans().AppendEmpty().Spans().AppendEmpty()
span.SetStartTimestamp(origStartTs)
span.SetEndTimestamp(origTs)
event := span.Events().AppendEmpty()
event.SetTimestamp(origTs)
normalizer.normalizeTrace(td)
Copy link

Copilot AI Feb 12, 2026

Choose a reason for hiding this comment

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

Test_dateOffsetNormalizer only covers the single 2017-01-25 timestamp that matches the hard-coded UnixNano check. If the normalizer is meant to apply a -2 day offset to any timestamp on 2017-01-25 (per the docstring), add a test case with a different time on 2017-01-25 to prevent regressions when more OTLP fixtures are migrated.

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

my attempt was to create a v2 alternative to this:

func correctTime(jsonData []byte) []byte {
jsonString := string(jsonData)
now := time.Now().UTC()
yesterday := now.AddDate(0, 0, -1).Format("2006-01-02")
twoDaysAgo := now.AddDate(0, 0, -2).Format("2006-01-02")
retString := strings.ReplaceAll(jsonString, "2017-01-26", yesterday)
retString = strings.ReplaceAll(retString, "2017-01-25", twoDaysAgo)
return []byte(retString)
}

Signed-off-by: Manik Mehta <mehtamanik96@gmail.com>
Signed-off-by: Manik Mehta <mehtamanik96@gmail.com>
Copilot AI review requested due to automatic review settings February 12, 2026 10:15
Signed-off-by: Manik Mehta <mehtamanik96@gmail.com>
Comment on lines +42 to +50
tm := t.AsTime()
offset := -1
// Apply a -2 day offset for any timestamp whose UTC date is 2017-01-25.
// All other timestamps use the default -1 day offset to preserve existing behavior.
yearOrig, monthOrig, dayOrig := tm.UTC().Date()
if yearOrig == 2017 && monthOrig == time.January && dayOrig == 25 {
offset = -2
}
year, month, day := d.tm.UTC().AddDate(0, 0, offset).Date()
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I am not very confident of giving the responsibility of handling offsets to normalizer. The other approach could be giving the traces logic to tests and accepting offset as parameter for normalizeTime

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +535 to +539
func correctTimeForTrace(td ptrace.Traces) {
now := time.Now().UTC()
normalizer := newDateOffsetNormalizer(now)
normalizer.normalizeTrace(td)
}
Copy link

Copilot AI Feb 12, 2026

Choose a reason for hiding this comment

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

correctTimeForTrace calls time.Now() internally, while other fixtures/queries are also normalized via correctTime() (which also calls time.Now() internally). If these happen to straddle a UTC day boundary (e.g., CI running around midnight), query time ranges and trace timestamps can be normalized to different dates and cause rare test flakes. Consider computing a single reference now once per test run (or per StorageIntegration) and passing it into both JSON and OTLP normalization paths so all fixtures/queries use the same day offsets.

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

catch is good but it will require more refactoring! should we do this @yurishkuro? because correctTime will be removed after all fixtures are upgraded

Signed-off-by: Manik Mehta <mehtamanik96@gmail.com>
Signed-off-by: Manik Mehta <mehtamanik96@gmail.com>
Copilot AI review requested due to automatic review settings February 13, 2026 12:26
Signed-off-by: Manik Mehta <mehtamanik96@gmail.com>
@Manik2708 Manik2708 requested a review from yurishkuro February 13, 2026 12:31
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 6 out of 6 changed files in this pull request and generated 3 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Signed-off-by: Manik Mehta <mehtamanik96@gmail.com>
Signed-off-by: Manik Mehta <mehtamanik96@gmail.com>
Copilot AI review requested due to automatic review settings February 13, 2026 13:33
Copilot AI review requested due to automatic review settings February 15, 2026 07:45
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +529 to +533
func correctTimeForTrace(td ptrace.Traces) {
now := time.Now().UTC()
normalizer := newDateOffsetNormalizer(now)
normalizer.normalizeTrace(td)
}
Copy link

Copilot AI Feb 15, 2026

Choose a reason for hiding this comment

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

correctTime() and correctTimeForTrace() both call time.Now() internally. In testFindTraces the query fixtures are normalized via correctTime() while trace fixtures are normalized via correctTimeForTrace(), so if the test run crosses a UTC day boundary (or multiple fixtures are loaded far apart in time) the query time range and trace timestamps can end up normalized to different dates and cause rare CI flakes. Consider computing a single reference nowUTC once per test (or per StorageIntegration) and passing it into both normalization paths (e.g., correctTime(jsonData, nowUTC) and correctTimeForTrace(td, nowUTC)).

Copilot uses AI. Check for mistakes.
Signed-off-by: Manik Mehta <mehtamanik96@gmail.com>
Signed-off-by: Manik Mehta <mehtamanik96@gmail.com>
Copilot AI review requested due to automatic review settings February 16, 2026 21:03
// Copyright (c) 2026 The Jaeger Authors.
// SPDX-License-Identifier: Apache-2.0

package main
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

this binary can safely be removed after conversion of all fixtures

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Signed-off-by: Manik Mehta <mehtamanik96@gmail.com>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Signed-off-by: Manik Mehta <mehtamanik96@gmail.com>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Signed-off-by: Manik Mehta <mehtamanik96@gmail.com>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@Manik2708
Copy link
Copy Markdown
Contributor Author

@yurishkuro all of the copilot comments are now addressed, can you see this if the binary is correct or not

@yurishkuro yurishkuro added the changelog:ci Change related to continuous integration / testing label Feb 21, 2026
@yurishkuro yurishkuro merged commit 4f2b5d3 into jaegertracing:main Feb 21, 2026
64 of 65 checks passed
OlegChumin pushed a commit to OlegChumin/jaeger that referenced this pull request Feb 28, 2026
jaegertracing#8044)

## Which problem is this PR solving?
- Fixes a part of: jaegertracing#7050 

## Description of the changes
- This init the environment to swap fixtures with v2. One of the
fixtures is also swapped here.

## How was this change tested?
- Unit and Integration tests

## Checklist
- [x] I have read
https://github.com/jaegertracing/jaeger/blob/main/CONTRIBUTING_GUIDELINES.md
- [x] I have signed all commits
- [x] I have added unit tests for the new functionality
- [x] I have run lint and test steps successfully: `make lint test`

## AI Usage in this PR (choose one)
See [AI Usage
Policy](https://github.com/jaegertracing/jaeger/blob/main/CONTRIBUTING_GUIDELINES.md#ai-usage-policy).
- [x] **None**: No AI tools were used in creating this PR
- [ ] **Light**: AI provided minor assistance (formatting, simple
suggestions)
- [ ] **Moderate**: AI helped with code generation or debugging specific
parts
- [ ] **Heavy**: AI generated most or all of the code changes

---------

Signed-off-by: Manik Mehta <mehtamanik96@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/storage changelog:ci Change related to continuous integration / testing

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants