Skip to content

Commit bd8acca

Browse files
Merge branch 'main' into collector-tlscfg
2 parents 8b074ac + 65cff3c commit bd8acca

File tree

160 files changed

+2740
-1260
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

160 files changed

+2740
-1260
lines changed

.github/workflows/ci-docker-hotrod.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ jobs:
5959
esac
6060
- name: Install kubectl
6161
if: matrix.runtime == 'k8s'
62-
uses: azure/setup-kubectl@v3
62+
uses: azure/setup-kubectl@v4
6363
with:
6464
version: 'latest'
6565

.github/workflows/ci-e2e-cassandra.yml

+9-2
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,19 @@ jobs:
2222
fail-fast: false
2323
matrix:
2424
jaeger-version: [v1, v2]
25+
create-schema: [manual, auto]
2526
version:
2627
- distribution: cassandra
2728
major: 4.x
2829
schema: v004
2930
- distribution: cassandra
3031
major: 5.x
3132
schema: v004
32-
name: ${{ matrix.version.distribution }} ${{ matrix.version.major }} ${{ matrix.jaeger-version }}
33+
exclude:
34+
# Exclude v1 as create schema on fly is available for v2 only
35+
- jaeger-version: v1
36+
create-schema: auto
37+
name: ${{ matrix.version.distribution }}-${{ matrix.version.major }} ${{ matrix.jaeger-version }} schema=${{ matrix.create-schema }}
3338
steps:
3439
- name: Harden Runner
3540
uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
@@ -45,9 +50,11 @@ jobs:
4550
- name: Run cassandra integration tests
4651
id: test-execution
4752
run: bash scripts/cassandra-integration-test.sh ${{ matrix.version.major }} ${{ matrix.version.schema }} ${{ matrix.jaeger-version }}
53+
env:
54+
SKIP_APPLY_SCHEMA: ${{ matrix.create-schema == 'auto' && true || false }}
4855

4956
- name: Upload coverage to codecov
5057
uses: ./.github/actions/upload-codecov
5158
with:
5259
files: cover.out
53-
flags: cassandra-${{ matrix.version.major }}-${{ matrix.jaeger-version }}
60+
flags: cassandra-${{ matrix.version.major }}-${{ matrix.jaeger-version }}-${{ matrix.create-schema }}

.github/workflows/dependency-review.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,4 @@ jobs:
2424
- name: 'Checkout Repository'
2525
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
2626
- name: 'Dependency Review'
27-
uses: actions/dependency-review-action@4081bf99e2866ebe428fc0477b69eb4fcda7220a # v4.4.0
27+
uses: actions/dependency-review-action@3b139cfc5fae8b618d3eae3675e383bb1769c019 # v4.5.0

.mockery.yaml

+4-1
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ packages:
6464
github.com/jaegertracing/jaeger/storage/dependencystore:
6565
interfaces:
6666
Reader:
67-
github.com/jaegertracing/jaeger/storage/metricsstore:
67+
github.com/jaegertracing/jaeger/storage/metricstore:
6868
config:
6969
all: true
7070
github.com/jaegertracing/jaeger/storage/samplingstore:
@@ -73,3 +73,6 @@ packages:
7373
github.com/jaegertracing/jaeger/storage/spanstore:
7474
config:
7575
all: true
76+
github.com/jaegertracing/jaeger/storage_v2/tracestore:
77+
config:
78+
all: true

CHANGELOG.md

+65-1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,70 @@ copy from UI changelog
2121

2222
</details>
2323

24+
v1.64.0 / v2.1.0 (2024-12-06)
25+
-------------------------------
26+
27+
### Backend Changes
28+
29+
#### ⛔ Breaking Changes
30+
31+
* [metrics][storage] move metrics reader decorator to metrics storage factory ([@mahadzaryab1](https://github.com/mahadzaryab1) in [#6287](https://github.com/jaegertracing/jaeger/pull/6287))
32+
* [v2][storage] move span reader decorator to storage factories ([@mahadzaryab1](https://github.com/mahadzaryab1) in [#6280](https://github.com/jaegertracing/jaeger/pull/6280))
33+
34+
#### ✨ New Features
35+
36+
* [v2][storage] implement read path for v2 storage interface ([@mahadzaryab1](https://github.com/mahadzaryab1) in [#6170](https://github.com/jaegertracing/jaeger/pull/6170))
37+
* Create cassandra db schema on session initialization ([@akstron](https://github.com/akstron) in [#5922](https://github.com/jaegertracing/jaeger/pull/5922))
38+
39+
#### 🐞 Bug fixes, Minor Improvements
40+
41+
* Fix password in integration test ([@akstron](https://github.com/akstron) in [#6284](https://github.com/jaegertracing/jaeger/pull/6284))
42+
* [cassandra] change compaction window default to 2hrs ([@yurishkuro](https://github.com/yurishkuro) in [#6282](https://github.com/jaegertracing/jaeger/pull/6282))
43+
* Improve telemetry.settings ([@yurishkuro](https://github.com/yurishkuro) in [#6275](https://github.com/jaegertracing/jaeger/pull/6275))
44+
* [kafka] otel helper instead of tlscfg package ([@chahatsagarmain](https://github.com/chahatsagarmain) in [#6270](https://github.com/jaegertracing/jaeger/pull/6270))
45+
* [refactor] fix package misspelling: telemetery->telemetry ([@yurishkuro](https://github.com/yurishkuro) in [#6269](https://github.com/jaegertracing/jaeger/pull/6269))
46+
* [prometheus] use otel helper instead of tlscfg package ([@chahatsagarmain](https://github.com/chahatsagarmain) in [#6266](https://github.com/jaegertracing/jaeger/pull/6266))
47+
* [fix] use metrics decorator around metricstorage ([@yurishkuro](https://github.com/yurishkuro) in [#6262](https://github.com/jaegertracing/jaeger/pull/6262))
48+
* Use real metrics factory instead of nullfactory ([@yurishkuro](https://github.com/yurishkuro) in [#6261](https://github.com/jaegertracing/jaeger/pull/6261))
49+
* [v2] use only version number for buildinfo ([@yurishkuro](https://github.com/yurishkuro) in [#6260](https://github.com/jaegertracing/jaeger/pull/6260))
50+
* [refactor] move spm v2 config to cmd/jaeger/ with all other configs ([@yurishkuro](https://github.com/yurishkuro) in [#6256](https://github.com/jaegertracing/jaeger/pull/6256))
51+
* [es-index-cleaner] use otel helper instead of tlscfg ([@chahatsagarmain](https://github.com/chahatsagarmain) in [#6259](https://github.com/jaegertracing/jaeger/pull/6259))
52+
* [api_v2] change time fields in archivetracerequest to non-nullable ([@rim99](https://github.com/rim99) in [#6251](https://github.com/jaegertracing/jaeger/pull/6251))
53+
* [es-rollover] use otel helpers for tls config instead of tlscfg ([@chahatsagarmain](https://github.com/chahatsagarmain) in [#6238](https://github.com/jaegertracing/jaeger/pull/6238))
54+
* Enable usestdlibvars linter ([@mmorel-35](https://github.com/mmorel-35) in [#6249](https://github.com/jaegertracing/jaeger/pull/6249))
55+
* [storage_v1] add time window to gettracerequest ([@rim99](https://github.com/rim99) in [#6244](https://github.com/jaegertracing/jaeger/pull/6244))
56+
* [fix][query] fix misconfiguration in tls settings from using otel http helper ([@mahadzaryab1](https://github.com/mahadzaryab1) in [#6239](https://github.com/jaegertracing/jaeger/pull/6239))
57+
* Auto-generate gogo annotations for api_v3 ([@yurishkuro](https://github.com/yurishkuro) in [#6233](https://github.com/jaegertracing/jaeger/pull/6233))
58+
* Use confighttp in expvar extension ([@yurishkuro](https://github.com/yurishkuro) in [#6227](https://github.com/jaegertracing/jaeger/pull/6227))
59+
* Parameterize listen host and override when in container ([@yurishkuro](https://github.com/yurishkuro) in [#6231](https://github.com/jaegertracing/jaeger/pull/6231))
60+
* Remove 0.0.0.0 overrides in hotrod ci ([@yurishkuro](https://github.com/yurishkuro) in [#6226](https://github.com/jaegertracing/jaeger/pull/6226))
61+
* [storage][v2] add reader adapter that just exposes the underlying v1 reader ([@mahadzaryab1](https://github.com/mahadzaryab1) in [#6221](https://github.com/jaegertracing/jaeger/pull/6221))
62+
* Change start/end time in gettrace request to not be pointers ([@yurishkuro](https://github.com/yurishkuro) in [#6218](https://github.com/jaegertracing/jaeger/pull/6218))
63+
* Pass real meterprovider to components ([@chahatsagarmain](https://github.com/chahatsagarmain) in [#6173](https://github.com/jaegertracing/jaeger/pull/6173))
64+
* [v2] update versions in readme ([@yurishkuro](https://github.com/yurishkuro) in [#6206](https://github.com/jaegertracing/jaeger/pull/6206))
65+
* Fix: testcreatecollectorproxy unit test failing on go-tip ([@Saumya40-codes](https://github.com/Saumya40-codes) in [#6204](https://github.com/jaegertracing/jaeger/pull/6204))
66+
* Respect environment variables when creating internal tracer ([@akstron](https://github.com/akstron) in [#6179](https://github.com/jaegertracing/jaeger/pull/6179))
67+
68+
#### 🚧 Experimental Features
69+
70+
* [v2]add script for metrics markdown table ([@vvs-personalstash](https://github.com/vvs-personalstash) in [#5941](https://github.com/jaegertracing/jaeger/pull/5941))
71+
72+
#### 👷 CI Improvements
73+
74+
* Allow using different container runtime ([@rim99](https://github.com/rim99) in [#6247](https://github.com/jaegertracing/jaeger/pull/6247))
75+
* K8s integration test for hotrod ([@chahatsagarmain](https://github.com/chahatsagarmain) in [#6155](https://github.com/jaegertracing/jaeger/pull/6155))
76+
* Pass username/password to cassandra docker-compose health check ([@akstron](https://github.com/akstron) in [#6214](https://github.com/jaegertracing/jaeger/pull/6214))
77+
* [fix][ci] change the prometheus healthcheck endpoint ([@mahadzaryab1](https://github.com/mahadzaryab1) in [#6217](https://github.com/jaegertracing/jaeger/pull/6217))
78+
79+
### 📊 UI Changes
80+
81+
#### 🐞 Bug fixes, Minor Improvements
82+
83+
* Add new formatting function "add" ([@drewcorlin1](https://github.com/drewcorlin1) in [#2507](https://github.com/jaegertracing/jaeger-ui/pull/2507))
84+
* Add pad_start link formatting function #2505 ([@drewcorlin1](https://github.com/drewcorlin1) in [#2504](https://github.com/jaegertracing/jaeger-ui/pull/2504))
85+
* Allow formatting link parameter values as iso date #2487 ([@drewcorlin1](https://github.com/drewcorlin1) in [#2501](https://github.com/jaegertracing/jaeger-ui/pull/2501))
86+
87+
2488
v1.63.0 / v2.0.0 (2024-11-10)
2589
-------------------------------
2690

@@ -263,7 +327,7 @@ Dependencies upgrades only.
263327

264328
#### 🚧 Experimental Features
265329

266-
* Implement telemetery struct for v1 components initialization ([@Wise-Wizard](https://github.com/Wise-Wizard) in [#5695](https://github.com/jaegertracing/jaeger/pull/5695))
330+
* Implement telemetry struct for v1 components initialization ([@Wise-Wizard](https://github.com/Wise-Wizard) in [#5695](https://github.com/jaegertracing/jaeger/pull/5695))
267331
* Support default configs for storage backends ([@yurishkuro](https://github.com/yurishkuro) in [#5691](https://github.com/jaegertracing/jaeger/pull/5691))
268332
* Simplify configs organization ([@yurishkuro](https://github.com/yurishkuro) in [#5690](https://github.com/jaegertracing/jaeger/pull/5690))
269333
* Create metrics.factory adapter for otel metrics ([@Wise-Wizard](https://github.com/Wise-Wizard) in [#5661](https://github.com/jaegertracing/jaeger/pull/5661))

RELEASE.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,8 @@ Here are the release managers for future versions with the tentative release dat
7878
7979
| Version | Release Manager | Tentative release date |
8080
|---------|-----------------|------------------------|
81-
| 1.64.0 | @joe-elliott | 4 December 2024 |
8281
| 1.65.0 | @jkowall | 8 January 2025 |
8382
| 1.66.0 | @yurishkuro | 3 February 2025 |
8483
| 1.67.0 | @albertteoh | 5 March 2025 |
8584
| 1.68.0 | @pavolloffay | 5 April 2025 |
85+
| 1.69.0 | @joe-elliott | 7 May 2025 |

cmd/all-in-one/main.go

+31-35
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,7 @@ import (
1414

1515
"github.com/spf13/cobra"
1616
"github.com/spf13/viper"
17-
"go.opentelemetry.io/collector/config/configtelemetry"
18-
"go.opentelemetry.io/otel/metric"
19-
"go.opentelemetry.io/otel/metric/noop"
17+
noopmetric "go.opentelemetry.io/otel/metric/noop"
2018
_ "go.uber.org/automaxprocs"
2119
"go.uber.org/zap"
2220

@@ -33,17 +31,16 @@ import (
3331
"github.com/jaegertracing/jaeger/pkg/config"
3432
"github.com/jaegertracing/jaeger/pkg/jtracer"
3533
"github.com/jaegertracing/jaeger/pkg/metrics"
36-
"github.com/jaegertracing/jaeger/pkg/telemetery"
34+
"github.com/jaegertracing/jaeger/pkg/telemetry"
3735
"github.com/jaegertracing/jaeger/pkg/tenancy"
3836
"github.com/jaegertracing/jaeger/pkg/version"
39-
metricsPlugin "github.com/jaegertracing/jaeger/plugin/metrics"
37+
"github.com/jaegertracing/jaeger/plugin/metricstore"
4038
ss "github.com/jaegertracing/jaeger/plugin/sampling/strategyprovider"
4139
"github.com/jaegertracing/jaeger/plugin/storage"
4240
"github.com/jaegertracing/jaeger/ports"
4341
"github.com/jaegertracing/jaeger/storage/dependencystore"
44-
"github.com/jaegertracing/jaeger/storage/metricsstore/metricstoremetrics"
45-
"github.com/jaegertracing/jaeger/storage/spanstore"
46-
"github.com/jaegertracing/jaeger/storage/spanstore/spanstoremetrics"
42+
"github.com/jaegertracing/jaeger/storage_v2/factoryadapter"
43+
"github.com/jaegertracing/jaeger/storage_v2/tracestore"
4744
)
4845

4946
// all-in-one/main is a standalone full-stack jaeger backend, backed by a memory store
@@ -68,8 +65,8 @@ func main() {
6865
log.Fatalf("Cannot initialize sampling strategy factory: %v", err)
6966
}
7067

71-
fc := metricsPlugin.FactoryConfigFromEnv()
72-
metricsReaderFactory, err := metricsPlugin.NewFactory(fc)
68+
fc := metricstore.FactoryConfigFromEnv()
69+
metricsReaderFactory, err := metricstore.NewFactory(fc)
7370
if err != nil {
7471
log.Fatalf("Cannot initialize metrics store factory: %v", err)
7572
}
@@ -95,12 +92,21 @@ by default uses only in-memory database.`,
9592
logger.Fatal("Failed to initialize tracer", zap.Error(err))
9693
}
9794

95+
baseTelset := telemetry.Settings{
96+
Logger: svc.Logger,
97+
TracerProvider: tracer.OTEL,
98+
Metrics: baseFactory,
99+
MeterProvider: noopmetric.NewMeterProvider(),
100+
ReportStatus: telemetry.HCAdapter(svc.HC()),
101+
}
102+
98103
storageFactory.InitFromViper(v, logger)
99-
if err := storageFactory.Initialize(baseFactory, logger); err != nil {
104+
if err := storageFactory.Initialize(baseTelset.Metrics, baseTelset.Logger); err != nil {
100105
logger.Fatal("Failed to init storage factory", zap.Error(err))
101106
}
102107

103-
spanReader, err := storageFactory.CreateSpanReader()
108+
v2Factory := factoryadapter.NewFactory(storageFactory)
109+
traceReader, err := v2Factory.CreateTraceReader()
104110
if err != nil {
105111
logger.Fatal("Failed to create span reader", zap.Error(err))
106112
}
@@ -113,7 +119,7 @@ by default uses only in-memory database.`,
113119
logger.Fatal("Failed to create dependency reader", zap.Error(err))
114120
}
115121

116-
metricsQueryService, err := createMetricsQueryService(metricsReaderFactory, v, logger, queryMetricsFactory)
122+
metricsQueryService, err := createMetricsQueryService(metricsReaderFactory, v, baseTelset)
117123
if err != nil {
118124
logger.Fatal("Failed to create metrics reader", zap.Error(err))
119125
}
@@ -159,20 +165,13 @@ by default uses only in-memory database.`,
159165
log.Fatal(err)
160166
}
161167

162-
telset := telemetery.Setting{
163-
Logger: svc.Logger,
164-
TracerProvider: tracer.OTEL,
165-
Metrics: queryMetricsFactory,
166-
ReportStatus: telemetery.HCAdapter(svc.HC()),
167-
LeveledMeterProvider: func(_ configtelemetry.Level) metric.MeterProvider {
168-
return noop.NewMeterProvider()
169-
},
170-
}
171168
// query
169+
queryTelset := baseTelset // copy
170+
queryTelset.Metrics = queryMetricsFactory
172171
querySrv := startQuery(
173172
svc, qOpts, qOpts.BuildQueryServiceOptions(storageFactory, logger),
174-
spanReader, dependencyReader, metricsQueryService,
175-
tm, telset,
173+
traceReader, dependencyReader, metricsQueryService,
174+
tm, queryTelset,
176175
)
177176

178177
svc.RunAndThen(func() {
@@ -218,14 +217,13 @@ func startQuery(
218217
svc *flags.Service,
219218
qOpts *queryApp.QueryOptions,
220219
queryOpts *querysvc.QueryServiceOptions,
221-
spanReader spanstore.Reader,
220+
traceReader tracestore.Reader,
222221
depReader dependencystore.Reader,
223222
metricsQueryService querysvc.MetricsQueryService,
224223
tm *tenancy.Manager,
225-
telset telemetery.Setting,
224+
telset telemetry.Settings,
226225
) *queryApp.Server {
227-
spanReader = spanstoremetrics.NewReaderDecorator(spanReader, telset.Metrics)
228-
qs := querysvc.NewQueryService(spanReader, depReader, *queryOpts)
226+
qs := querysvc.NewQueryService(traceReader, depReader, *queryOpts)
229227

230228
server, err := queryApp.NewServer(context.Background(), qs, metricsQueryService, qOpts, tm, telset)
231229
if err != nil {
@@ -239,22 +237,20 @@ func startQuery(
239237
}
240238

241239
func createMetricsQueryService(
242-
metricsReaderFactory *metricsPlugin.Factory,
240+
metricsReaderFactory *metricstore.Factory,
243241
v *viper.Viper,
244-
logger *zap.Logger,
245-
metricsReaderMetricsFactory metrics.Factory,
242+
telset telemetry.Settings,
246243
) (querysvc.MetricsQueryService, error) {
247-
if err := metricsReaderFactory.Initialize(logger); err != nil {
244+
if err := metricsReaderFactory.Initialize(telset); err != nil {
248245
return nil, fmt.Errorf("failed to init metrics reader factory: %w", err)
249246
}
250247

251248
// Ensure default parameter values are loaded correctly.
252-
metricsReaderFactory.InitFromViper(v, logger)
249+
metricsReaderFactory.InitFromViper(v, telset.Logger)
253250
reader, err := metricsReaderFactory.CreateMetricsReader()
254251
if err != nil {
255252
return nil, fmt.Errorf("failed to create metrics reader: %w", err)
256253
}
257254

258-
// Decorate the metrics reader with metrics instrumentation.
259-
return metricstoremetrics.NewReaderDecorator(reader, metricsReaderMetricsFactory), nil
255+
return reader, nil
260256
}

cmd/anonymizer/app/query/query_test.go

+4-2
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,12 @@ import (
1616
"github.com/jaegertracing/jaeger/cmd/query/app"
1717
"github.com/jaegertracing/jaeger/cmd/query/app/querysvc"
1818
"github.com/jaegertracing/jaeger/model"
19-
"github.com/jaegertracing/jaeger/plugin/metrics/disabled"
19+
"github.com/jaegertracing/jaeger/plugin/metricstore/disabled"
2020
"github.com/jaegertracing/jaeger/proto-gen/api_v2"
2121
dependencyStoreMocks "github.com/jaegertracing/jaeger/storage/dependencystore/mocks"
2222
"github.com/jaegertracing/jaeger/storage/spanstore"
2323
spanstoremocks "github.com/jaegertracing/jaeger/storage/spanstore/mocks"
24+
"github.com/jaegertracing/jaeger/storage_v2/factoryadapter"
2425
)
2526

2627
var (
@@ -55,11 +56,12 @@ type testServer struct {
5556

5657
func newTestServer(t *testing.T) *testServer {
5758
spanReader := &spanstoremocks.Reader{}
59+
traceReader := factoryadapter.NewTraceReader(spanReader)
5860
metricsReader, err := disabled.NewMetricsReader()
5961
require.NoError(t, err)
6062

6163
q := querysvc.NewQueryService(
62-
spanReader,
64+
traceReader,
6365
&dependencyStoreMocks.Reader{},
6466
querysvc.QueryServiceOptions{},
6567
)

cmd/collector/app/sanitizer/cache/mocks/ServiceAliasMappingExternalSource.go

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/collector/app/sanitizer/cache/mocks/ServiceAliasMappingStorage.go

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/collector/main.go

+6-1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
"github.com/jaegertracing/jaeger/cmd/internal/status"
2525
"github.com/jaegertracing/jaeger/pkg/config"
2626
"github.com/jaegertracing/jaeger/pkg/metrics"
27+
"github.com/jaegertracing/jaeger/pkg/telemetry"
2728
"github.com/jaegertracing/jaeger/pkg/tenancy"
2829
"github.com/jaegertracing/jaeger/pkg/version"
2930
ss "github.com/jaegertracing/jaeger/plugin/sampling/strategyprovider"
@@ -63,8 +64,12 @@ func main() {
6364
metricsFactory := baseFactory.Namespace(metrics.NSOptions{Name: "collector"})
6465
version.NewInfoMetrics(metricsFactory)
6566

67+
baseTelset := telemetry.NoopSettings()
68+
baseTelset.Logger = svc.Logger
69+
baseTelset.Metrics = baseFactory
70+
6671
storageFactory.InitFromViper(v, logger)
67-
if err := storageFactory.Initialize(baseFactory, logger); err != nil {
72+
if err := storageFactory.Initialize(baseTelset.Metrics, baseTelset.Logger); err != nil {
6873
logger.Fatal("Failed to init storage factory", zap.Error(err))
6974
}
7075
spanWriter, err := storageFactory.CreateSpanWriter()

0 commit comments

Comments
 (0)