Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
237 commits
Select commit Hold shift + click to select a range
9c3ec31
[idl check] Fetch tags (#6758)
yurishkuro Feb 19, 2025
47d4984
[storage] Fix Kafka TLS configuration when tls.enabled is missing
Feb 21, 2025
55a2f32
[storage] Fix Kafka TLS configuration with plaintext authentication
Feb 21, 2025
8d43f54
[Fix]: update all otel collector packages (#6759)
AnmolxSingh Feb 20, 2025
27a5d86
chore(deps): bump the otel-collector group across 1 directory with 11…
dependabot[bot] Feb 21, 2025
0dcb445
[remote-storage][v2] Add complete IDL for trace storage (#6737)
mahadzaryab1 Feb 21, 2025
7a95b5a
fix(deps): update module github.com/vektra/mockery/v2 to v2.52.3 (#6766)
renovate-bot Feb 21, 2025
f12b009
Fixed Lint Checks
Feb 21, 2025
db7b869
Fix Kafka TLS configuration with plaintext authentication
Feb 21, 2025
9a157b8
fix(kafka): improve TLS and plaintext auth configuration
Feb 23, 2025
5678260
fix(kafka): improve TLS and plaintext auth configuration
Feb 23, 2025
1646f84
Added Integration Tests for Plaintext, Plaintext + SSL, and added the…
Mar 1, 2025
84ed2a4
Revert "Add 'features' command to print available feature gates" (#6771)
yurishkuro Feb 23, 2025
9ed89a3
[refactor] Return start and end timestamps from `FindTraceIDs` in v2 …
mahadzaryab1 Feb 24, 2025
9b98342
[refactor] Return start and end timestamps from FindTraceIDs in v2 re…
mahadzaryab1 Feb 24, 2025
375c83b
[refactor] Inline proto definiton of `KeyValue` from OTEL (#6775)
mahadzaryab1 Feb 26, 2025
7a5d379
[refactor] Decouple `TraceQueryParams` from `Query` in integration te…
mahadzaryab1 Feb 27, 2025
baa70e1
[refactor] Change `TraceQueryParams` to accept typed attributes (#6780)
mahadzaryab1 Feb 27, 2025
54c27ff
feat: Enable configuration of hostnames for hotrod services (#6782)
w-h-a Feb 27, 2025
5689792
fix(deps): update module github.com/vektra/mockery/v2 to v2.52.4 (#6783)
renovate-bot Feb 27, 2025
745805f
[refactor] Converge v2 API with v2 remote storage API (#6784)
mahadzaryab1 Feb 28, 2025
226173c
[fix] Fix flaky unit test in `attributes_test.go` (#6785)
mahadzaryab1 Feb 28, 2025
1ff71a9
[refactor] Refactor `jptrace/attributes_tests.go` for readability (#6…
mahadzaryab1 Feb 28, 2025
050e222
chore(deps): update github-actions deps (#6788)
renovate-bot Mar 1, 2025
414287f
Update Image version to 3.9.0
Mar 1, 2025
0334913
fix(deps): update module github.com/golangci/golangci-lint to v1.64.6…
renovate-bot Mar 3, 2025
6413e69
chore(deps): bump github.com/vektra/mockery/v2 from 2.52.4 to 2.53.0 …
dependabot[bot] Mar 3, 2025
3c1e2a6
fix(deps): update module github.com/prometheus/client_golang to v1.21…
renovate-bot Mar 4, 2025
61505fc
fix(deps): update module github.com/dgraph-io/badger/v4 to v4.6.0 (#6…
renovate-bot Mar 4, 2025
29edb5d
fix(deps): update module golang.org/x/net to v0.36.0 (#6806)
renovate-bot Mar 4, 2025
1d059f2
chore(deps): update dependency go to v1.24.1 (#6805)
renovate-bot Mar 4, 2025
543c934
Use empty slices instead of nil (#6799)
zhengkezhou1 Mar 5, 2025
95b2541
chore(deps): update golang docker tag to v1.24.1 (#6808)
renovate-bot Mar 5, 2025
43f4493
chore(deps): bump google.golang.org/grpc from 1.70.0 to 1.71.0 (#6811)
dependabot[bot] Mar 5, 2025
f81a07d
fix(deps): update module golang.org/x/sys to v0.31.0 (#6812)
renovate-bot Mar 5, 2025
f9e385a
[refactor] Move internal `TracesData` type to package `jptrace` (#6809)
mahadzaryab1 Mar 5, 2025
9b9c2d0
fix(deps): update module github.com/grpc-ecosystem/go-grpc-middleware…
renovate-bot Mar 6, 2025
1dd8f5d
fix(deps): update module golang.org/x/net to v0.37.0 (#6818)
renovate-bot Mar 6, 2025
0595c9e
fix(deps): update module go.opentelemetry.io/otel to v1.35.0 (#6816)
renovate-bot Mar 6, 2025
53db82f
chore(deps): bump the otel-collector group with 54 updates (#6810)
dependabot[bot] Mar 6, 2025
e48da8c
fix(deps): update all otel sdk + contrib packages (#6815)
renovate-bot Mar 6, 2025
a161fd2
[es] Refactor the ES SpanWriter to make it reusable for v2 APIs (#6796)
Manik2708 Mar 6, 2025
571b713
fix(deps): update module github.com/go-delve/delve to v1.24.1 (#6823)
renovate-bot Mar 6, 2025
2773835
Addressed comments, Changed SASL SSL Port, Used Kraft with Kafka inst…
amol-verma-allen May 4, 2025
44c3181
Prepare release v1.67.0/v2.4.0 (#6826)
yurishkuro Mar 8, 2025
a9011f8
[chore] Remove gogoproto annotations from `trace_storage.proto` and `…
mahadzaryab1 Mar 9, 2025
4ecc7e5
[fix] Allow es-index-cleaner to delete indices based on current time …
Asatyam Mar 9, 2025
0985bcc
[ES] Refactor the `GetOperations` and `GetServices` of SpanReader to …
Manik2708 Mar 9, 2025
81398ab
[refactor] Return chunk of traces from remote storage api v2 (#6830)
mahadzaryab1 Mar 9, 2025
c54c7dd
fix(deps): update module github.com/vektra/mockery/v2 to v2.53.1 (#6833)
renovate-bot Mar 10, 2025
9707cbf
Create a template/checklist for Jaeger release (#6691)
ADI-ROXX Mar 10, 2025
7f398ad
Prevent patch upgrades of github.com/vektra/mockery/v2 (#6834)
renovate-bot Mar 10, 2025
bb7a117
[ES] Refactor the `FindTraceIDs` of SpanReader to make them reusable…
Manik2708 Mar 11, 2025
ab7ee8b
feat[dependabot]: clean up dependabot config (#6837)
jinjiaKarl Mar 11, 2025
7dc07e0
[grpc][v2] Implement `GetServices` Call in GRPC reader for remote sto…
mahadzaryab1 Mar 11, 2025
21ac946
fix(deps): update module github.com/golangci/golangci-lint to v1.64.7…
renovate-bot Mar 12, 2025
2e90afc
feat: Move pkg/testutils to internal/testutils (#6840)
jinjiaKarl Mar 12, 2025
7094051
Remove ci-lint-dependabot-config.yml (#6844)
jinjiaKarl Mar 12, 2025
14cd2b9
Make dco check email case-insensitive (#6849)
jinjiaKarl Mar 13, 2025
fd5e57b
fix(deps): update module github.com/prometheus/common to v0.63.0 (#6850)
renovate-bot Mar 13, 2025
bde07e5
[ES] Add feature to stop Legacy Trace IDs handling in SpanReader (#6848)
Manik2708 Mar 14, 2025
3f92204
[agent] Remove unnecessary Server interface (#6851)
yurishkuro Mar 14, 2025
fb3764c
[grpc][v2] Implement `GetOperations` Call in gRPC reader for remote s…
mahadzaryab1 Mar 15, 2025
57edf75
fix(deps): update module github.com/spf13/viper to v1.20.0 (#6853)
renovate-bot Mar 15, 2025
c54ef8f
[agent] Refactor UDP server (#6852)
yurishkuro Mar 16, 2025
4005176
Instruct Renovate to pin GitHub Action hashes (#6860)
yurishkuro Mar 17, 2025
8175ac1
fix(deps): update module github.com/golangci/golangci-lint to v1.64.8…
renovate-bot Mar 17, 2025
e91c794
fix(deps): update all otel collector packages (#6865)
renovate-bot Mar 18, 2025
85e569b
Addressed comments, Changed SASL SSL Port, Used Kraft with Kafka inst…
amol-verma-allen May 4, 2025
48f599a
fix(deps): update all otel collector contrib packages to v0.122.0 (#6…
renovate-bot Mar 18, 2025
61b7cbd
[refactor] Move interface to remove cmd/agent dependency (#6863)
yurishkuro Mar 18, 2025
367edfc
chore(deps): pin prom/prometheus:latest docker to v3.2.0 + hash (#6870)
renovate-bot Mar 18, 2025
6ce35cf
[ES] Refactor `FindTraces` and `GetTrace` of SpanReader to make them …
Manik2708 Mar 18, 2025
84cc45a
chore(deps): update prom/prometheus docker tag to v3.2.1 (#6871)
renovate-bot Mar 18, 2025
5940d0b
🪦 Remove Agent code (#6868)
yurishkuro Mar 18, 2025
dcd70df
[ES] Remove pointer signatures from `CoreSpanReader` (#6874)
Manik2708 Mar 19, 2025
a7580ca
Cleanup legacy models (#6875)
yurishkuro Mar 19, 2025
47f7c0a
Replace the use of model/converter/thrift/zipkin (#6879)
shuraih775 Mar 19, 2025
2f5578d
[all-in-one] Avoid multi-arch builds in merge queue (#6880) (#6882)
sAchin-680 Mar 19, 2025
b6c33df
fix(deps): update all otel collector packages (#6876)
renovate-bot Mar 19, 2025
9433894
[grpc][v2] Implement `FindTraceIDs` Call in gRPC reader for remote st…
mahadzaryab1 Mar 20, 2025
281d4aa
Move pkg/normalizer to collector (#6877)
danish9039 Mar 20, 2025
d6c6844
Move pkg/tenancy to internal/tenancy (#6889)
danish9039 Mar 20, 2025
1716433
Move pkg/recoveryhandler to internal/recoveryhandler (#6887)
danish9039 Mar 20, 2025
ab0ab1b
moved pkg/hostname to internal/hostname (#6886)
danish9039 Mar 21, 2025
498871f
Move pkg/healthcheck to internal/healthcheck (#6888)
danish9039 Mar 21, 2025
a45cf93
Move pkg/config to internal/config (#6884)
gentcod Mar 22, 2025
eaf4f77
Remove sampling.strategies.bugfix-5270 flag and mark feature Stable (…
yurishkuro Mar 22, 2025
7be2d7a
[ES] Separate the `CoreSpanWriter` from `SpanWriter` (#6883)
Manik2708 Mar 22, 2025
93931be
Move pkg/fswatcher to internal/fswatcher (#6895)
sAchin-680 Mar 22, 2025
5b0e6f5
Move pkg/telemetry to internal/telemetry (#6912)
danish9039 Mar 22, 2025
09afb8d
Remove pkg/discovery (#6902)
danish9039 Mar 22, 2025
a67cfc1
Move pkg/jtracer to internal/jtracer (#6907)
danish9039 Mar 22, 2025
e8c5706
Move pkg/gzipfs to internal/gzipfs (#6897)
sAchin-680 Mar 22, 2025
5b6ecb7
Remove model/prototest (#6915)
danish9039 Mar 23, 2025
f5d28e6
Move model/converter to internal/converter (#6917)
danish9039 Mar 23, 2025
f5b146a
Move pkg/version to internal/version (#6913)
danish9039 Mar 23, 2025
573d7ad
[grpc][v2] Implement v2 gRPC trace writer (#6919)
mahadzaryab1 Mar 23, 2025
2672fec
[ES] Move DB model out of `v1/elasticsearch/internal/spanstore/intern…
Manik2708 Mar 23, 2025
272f440
Move model/proto to internal/proto (#6918)
danish9039 Mar 23, 2025
5f7ad47
Move pkg/prometheus to internal/config/promcfg (#6911)
danish9039 Mar 23, 2025
134c283
Move pkg/kafka to internal/kafka (#6908)
danish9039 Mar 23, 2025
bc82281
Move pkg/metrics to internal/metrics (#6901)
danish9039 Mar 24, 2025
70bab89
Move pkg/{gogocodec,httpfs,bearertoken,boundqueue} to internal (#6896)
sAchin-680 Mar 24, 2025
d3a2c68
[ES][v2] Copy Jaeger<->OTLP translator from OTEL Contrib (#6923)
Manik2708 Mar 24, 2025
f83aae9
Move pkg/httpmetrics to internal/httpmetrics (#6905)
danish9039 Mar 24, 2025
cfc7108
Move pkg/distributedlock to internal/distributedlock (#6903)
danish9039 Mar 24, 2025
628323b
Update module google.golang.org/protobuf to v1.36.6 (#6924)
renovate-bot Mar 24, 2025
fcb7787
Support configuring prometheus.extra_query_parameters via CLI (#6931)
andreasgerstmayr Mar 25, 2025
2046eb9
[grpc][v2] Implement v2 gRPC dependency reader (#6933)
mahadzaryab1 Mar 26, 2025
4a2f549
Update module github.com/spf13/viper to v1.20.1 (#6936)
renovate-bot Mar 27, 2025
0220ac3
Move pkg/es to internal/storage/elasticsearch (#6937)
danish9039 Mar 27, 2025
6cc83d6
Update module golang.org/x/net to v0.38.0 (#6939)
renovate-bot Mar 27, 2025
f61cd0c
[ES][v2] Refactor `from_dbmodel` and `to_dbmodel` to accept and retur…
Manik2708 Mar 29, 2025
441aac7
Move proto-gen to internal (#6941)
yurishkuro Mar 29, 2025
4853cc6
[ES] Remove pointer signatures from `FromDBModel` and `ToDBModel` (#6…
Manik2708 Mar 29, 2025
3e754f2
Update All OTEL Collector packages (#6949)
renovate-bot Apr 1, 2025
055466d
Pin dependencies (#6950)
renovate-bot Apr 1, 2025
31010c1
Update All OTEL Collector contrib packages to v0.123.0 (#6948)
renovate-bot Apr 1, 2025
9353d3b
Update actions/dependency-review-action action to v4.6.0 (#6953)
renovate-bot Apr 1, 2025
245cbc4
Update module google.golang.org/grpc to v1.71.1 (#6952)
renovate-bot Apr 1, 2025
bc45128
[refactor] Remove `TracesChunk` type and stream otlp traces directly …
mahadzaryab1 Apr 1, 2025
903d039
Update golang Docker tag to v1.24.2 (#6958)
renovate-bot Apr 1, 2025
4f157de
Update dependency go to v1.24.2 (#6957)
renovate-bot Apr 1, 2025
ef5d4ae
Remove package pkg/netutils (#6955)
pipiland2612 Apr 1, 2025
d595ecd
[grpc][v2] Implement `GetTraces` Call in gRPC reader for remote stora…
mahadzaryab1 Apr 2, 2025
173fdb0
Update module github.com/golangci/golangci-lint to v2 (#6959)
AnmolxSingh Apr 2, 2025
70419f2
Move pkg/adjuster to cmd/query/app/querysvc/internal/adjuster (#6956)
pipiland2612 Apr 2, 2025
88e0784
Move pkg/cassandra to internal/storage/cassandra (#6960)
pipiland2612 Apr 2, 2025
f1981ab
[grpc][v2] Implement `FindTraces` Call in gRPC reader for remote stor…
mahadzaryab1 Apr 2, 2025
48b3b5a
Update module github.com/josephspurrier/goversioninfo to v1.5.0 (#6964)
renovate-bot Apr 2, 2025
a155f09
Move pkg/otelsemconv to internal/telemetry/otelsemconv (#6961)
pipiland2612 Apr 2, 2025
ef3584e
Delete empty pkg package (#6967)
pipiland2612 Apr 2, 2025
90029d1
[grpc][v2] Implement gRPC v2 factory (#6968)
mahadzaryab1 Apr 2, 2025
cd2bb59
Add usetesting linter and fix lint issues (#6892) (#6972)
anurag-rajawat Apr 3, 2025
656d030
Move model/json/model.go to internal/uimodel/converter/v1 (#6973)
pipiland2612 Apr 3, 2025
308cf1d
[ES][v2] Add snapshot tests for spans conversion (#6970)
Manik2708 Apr 3, 2025
e2ba040
Minor fixes to release checklist generator (#6976)
albertteoh Apr 4, 2025
1fd8eae
Add changelog:refactoring (#6977)
albertteoh Apr 5, 2025
9e122f3
Prepare release v1.68.0/v2.5.0 (#6978)
albertteoh Apr 5, 2025
2764ee1
Update jaegertracing/all-in-one:latest Docker digest to 6279882 (#6981)
renovate-bot Apr 5, 2025
a037094
Update jaegertracing/jaeger-tracegen:latest Docker digest to bb5ed95 …
renovate-bot Apr 5, 2025
a070d61
[grpc][v2] Implement `GetServices` in grpc v2 handler (#6980)
mahadzaryab1 Apr 5, 2025
aee34ff
Update module golang.org/x/sys to v0.32.0 (#6983)
renovate-bot Apr 5, 2025
6179775
Update module github.com/fsnotify/fsnotify to v1.9.0 (#6974)
renovate-bot Apr 5, 2025
34cadc8
[grpc][v2] Implement GetServices in grpc v2 handler (#6984)
mahadzaryab1 Apr 5, 2025
e16f8fa
[grpc][v2] Implement `GetTraces` in gRPC v2 handler (#6985)
mahadzaryab1 Apr 6, 2025
246eec3
[bug] Fix the version module path in ldflags (#6990)
developer-guy Apr 6, 2025
933160c
Remove outdated info related to jaeger exporter (#6987)
DamianMaslanka5 Apr 6, 2025
b21764b
#5608 Improve SPM e2e test with test for error rate (#6991)
pipiland2612 Apr 7, 2025
52fc5d3
Add e2e integration test for Query Service (#6966)
pipiland2612 Apr 7, 2025
2542dc1
Update module golang.org/x/net to v0.39.0 (#6997)
renovate-bot Apr 7, 2025
8c6fa49
Update module github.com/dgraph-io/badger/v4 to v4.7.0 (#6996)
renovate-bot Apr 7, 2025
ed7d50e
Update module github.com/prometheus/client_golang to v1.22.0 (#7000)
renovate-bot Apr 8, 2025
fe34670
[grpc][v2] Implement `FindTraces` in gRPC v2 handler (#6992)
mahadzaryab1 Apr 8, 2025
fb97c27
[ES][v1] Change the DB Tag value from `string` to `any` type (#6998)
Manik2708 Apr 10, 2025
3d7d094
Update cassandra:5.0 Docker digest to 5.0.2 (#7005)
renovate-bot Apr 10, 2025
80c7596
Fix flakiness in runIndexCleanerTest by filtering Jaeger indices (#7004)
0xShubhamSolanki Apr 10, 2025
2c3b1a5
Update cassandra Docker tag to v5.0.3 (#7009)
renovate-bot Apr 10, 2025
b874c50
Update module github.com/go-delve/delve to v1.24.2 (#7011)
renovate-bot Apr 10, 2025
0f03fde
[grpc][v2] Implement FindTraceIDs in gRPC v2 handler (#7003)
mahadzaryab1 Apr 10, 2025
6a90827
[ES][v2] Change the DB Tag value from `string` to `any` type (#6994)
Manik2708 Apr 10, 2025
e6e273f
[grpc][v2] Implement OTLP exporter API in gRPC v2 handler (#7012)
mahadzaryab1 Apr 11, 2025
9cde1f3
Update cassandra Docker tag to v5.0.4 (#7013)
renovate-bot Apr 11, 2025
ef2084f
Update module github.com/prometheus/client_model to v0.6.2 (#7014)
renovate-bot Apr 11, 2025
f0920af
Update module github.com/golangci/golangci-lint/v2 to v2.1.0 (#7017)
renovate-bot Apr 12, 2025
d68ed19
[grpc][v2] Implement `GetDependencies` in gRPC v2 Server (#7016)
mahadzaryab1 Apr 12, 2025
496352e
Update module github.com/golangci/golangci-lint/v2 to v2.1.1 (#7018)
renovate-bot Apr 12, 2025
995e098
[refactor] Consolidate v1/v2 reader factory adapter functionality (#…
mahadzaryab1 Apr 13, 2025
8bdc001
[ES][v2] Implement `WriteTraces` for v2 (#7020)
Manik2708 Apr 13, 2025
284bf3d
[refactor] Consolidate v1/v2 writer factory adapter functionality (#7…
mahadzaryab1 Apr 14, 2025
e0e8b27
Update module mvdan.cc/gofumpt to v0.8.0 (#7023)
renovate-bot Apr 14, 2025
021c04d
[ES][v2] Implement `GetOperations` and `GetServices` for v2 (#7025)
Manik2708 Apr 14, 2025
2d32c46
Update docker.elastic.co/elasticsearch/elasticsearch Docker tag to v8…
renovate-bot Apr 15, 2025
3ff6ccc
Update All OTEL Collector packages (#7029)
renovate-bot Apr 15, 2025
df230c1
Update All OTEL Collector contrib packages to v0.124.0 (#7028)
renovate-bot Apr 15, 2025
e783b44
Update module github.com/golangci/golangci-lint/v2 to v2.1.2 (#7032)
renovate-bot Apr 15, 2025
4a06f9c
Update prom/prometheus Docker tag to v3.3.0 (#7033)
renovate-bot Apr 15, 2025
da26568
[refactor] Change remote storage server to accept v2 factories (#7024)
mahadzaryab1 Apr 15, 2025
f418712
Update All OTEL Collector contrib packages to v0.124.1 (#7036)
renovate-bot Apr 16, 2025
99e54a9
[grpc][v2] Register gRPC v2 handler in remote-storage server (#7037)
mahadzaryab1 Apr 16, 2025
7665a92
[grpc][v2] Use v2 gRPC factory in storage extension (#6969)
mahadzaryab1 Apr 17, 2025
211072a
Update module github.com/elastic/go-elasticsearch/v8 to v9 (#7041)
renovate-bot Apr 17, 2025
f6d13e8
Fix paths in mockery config (#7045)
yurishkuro Apr 18, 2025
8ef884d
[ES] Refactor `DependencyStore` to make it reusable for v2 APIs (#7044)
Manik2708 Apr 18, 2025
e039098
[test] Block until server starts (#7047)
yurishkuro Apr 18, 2025
886299d
Enable mockery/with-expecter (#7046)
yurishkuro Apr 18, 2025
89b8e33
[v2] Implement `WriteTraces` for Memory backend (#7027)
Manik2708 Apr 18, 2025
f667ef5
Remove last mockery/with-expecter=false (#7048)
yurishkuro Apr 19, 2025
bb8ccc2
[v2] Implement `FindTraceIDs` for ES/OS (#7035)
Manik2708 Apr 19, 2025
057c896
[v2] Implement `GetOperations` and `GetServices` for memory backend (…
Manik2708 Apr 19, 2025
2697f80
[ES][v2] Implement `GetTraces` for ES/OS (#7054)
Manik2708 Apr 20, 2025
3603ce2
[fix] Add query integration test to workflows file (#7056)
mahadzaryab1 Apr 20, 2025
19ff251
[v2][remote-storage] Implement remote storage extension (#7043)
mahadzaryab1 Apr 20, 2025
c1017e4
Update module github.com/vektra/mockery/v2 to v3 (#7051)
AnmolxSingh Apr 20, 2025
bc538f4
[refactor] Remove `jaeger_query` extension from remote storage backen…
mahadzaryab1 Apr 20, 2025
851be94
[ES][v2] Implement `FindTraces` for ES/OS for v2 (#7021)
Manik2708 Apr 20, 2025
719d9e3
Update module google.golang.org/grpc to v1.72.0 (#7061)
renovate-bot Apr 21, 2025
a1623a6
[grpc][v2] Use standard OTLP receiver for gRPC storage write path (#7…
mahadzaryab1 Apr 23, 2025
fba042c
Update module github.com/golangci/golangci-lint/v2 to v2.1.4 (#7070)
renovate-bot Apr 24, 2025
cf59a28
Update module github.com/golangci/golangci-lint/v2 to v2.1.5 (#7071)
renovate-bot Apr 25, 2025
65087fa
Add pprof extension (#7073)
denysvitali Apr 25, 2025
b5c32a1
Upgrade reverse-proxy example to jaeger-v2 (#7076)
yurishkuro Apr 26, 2025
541fa5f
[docs] Add documentation for new remote storage backend extension (#7…
mahadzaryab1 Apr 26, 2025
3e71d01
Remove unnecessary heading (#7078)
yurishkuro Apr 26, 2025
752df6b
feat(elasticsearch): add flag to enable gzip compression (#7072)
timonegk Apr 26, 2025
fc04ce3
[ES][v2] Move `CoreDependencyStore` and `dbmodel` from v1 to v2 (#7079)
Manik2708 Apr 27, 2025
b650859
[ES] Make `NestedTags` and `FieldTags` distinction at `CoreSpanWriter…
Manik2708 Apr 27, 2025
d2888f5
[ES] Make `NestedTags` and `ElevatedTags` distinction at `CoreSpanRea…
Manik2708 Apr 27, 2025
a774fcd
[clickhouse] Convert OTel traces model to native format (#6935)
zhengkezhou1 Apr 27, 2025
10268cb
[ES][v2] Implement `GetDependenies` and `WriteDependencies` (#7085)
Manik2708 Apr 29, 2025
c8d585b
fix(deps): update all otel collector packages (#7084)
renovate-bot Apr 30, 2025
12b1163
fix(deps): update all otel collector contrib packages to v0.125.0 (#7…
renovate-bot Apr 30, 2025
840ca7d
chore(deps): update github-actions deps (#7088)
renovate-bot May 1, 2025
90776df
fix(deps): update module go.opentelemetry.io/proto/otlp to v1.6.0 (#7…
renovate-bot May 1, 2025
1ba836b
chore(deps): update prom/prometheus docker tag to v3.3.1 (#7091)
renovate-bot May 2, 2025
942e738
Check that version number is corectly embedded in the binary (#7092)
yurishkuro May 3, 2025
7de5ce6
Add filterprocessor (#7094)
yurishkuro May 4, 2025
41dc68c
Do not run binary size check on push to main (#7096)
yurishkuro May 4, 2025
601ec4a
Addressed comments, Changed SASL SSL Port, Used Kraft with Kafka inst…
amol-verma-allen May 4, 2025
c798f71
[storage] Fix Kafka TLS configuration with plaintext authentication
Feb 21, 2025
708f405
Fixed Lint Checks
Feb 21, 2025
c76c09a
fix(kafka): improve TLS and plaintext auth configuration
Feb 23, 2025
8496d29
Added Integration Tests for Plaintext, Plaintext + SSL, and added the…
Mar 1, 2025
dd232eb
Addressed comments, Changed SASL SSL Port, Used Kraft with Kafka inst…
amol-verma-allen May 4, 2025
df25180
Merge branch 'main' into fix-kafka-tls-plaintext-6744
amilbcahat May 4, 2025
9b98fc2
Removed unnecessary files
amol-verma-allen May 4, 2025
f048864
Moved back to default version
amol-verma-allen May 4, 2025
d801254
Added Dynamic Cert Generation and resolved other comments
amol-verma-allen Jun 17, 2025
e0cd314
Updated the Version back to v2
amol-verma-allen Jun 17, 2025
2154dc2
Reverted ordering of KAFKA_CFG_PROCESS_ROLES
amol-verma-allen Jun 20, 2025
75309e8
Reverted ordering of KAFKA_CFG_PROCESS_ROLES
amol-verma-allen Jun 20, 2025
6f0ab10
Merge branch 'main' into fix-kafka-tls-plaintext-6744
amilbcahat Jun 20, 2025
be3cdb4
Removed unnecessary if check
amol-verma-allen Jun 21, 2025
f69b83b
Reduced redundancy in kafka tests
amol-verma-allen Jun 21, 2025
d7fb871
Merge branch 'main' into fix-kafka-tls-plaintext-6744
amilbcahat Jun 21, 2025
38d08bf
Merge branch 'main' into fix-kafka-tls-plaintext-6744
yurishkuro Jul 23, 2025
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
54 changes: 49 additions & 5 deletions docker-compose/kafka/v3/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,58 @@
version: "3"
services:
kafka:
image: bitnami/kafka:3.9.0@sha256:55df55bfc7ed5980447387620afa3498eab3985a4d8c731013d82b3fa8b43bff
user: "0:0" # Run as root to avoid permission issues
ports:
- "9092:9092"
- "9093:9093"
- "9094:9094"
- "9095:9095"
volumes:
- ../../../internal/config/tlscfg/testdata:/bitnami/kafka/config/certs
- kafka-data:/bitnami
environment:
- KAFKA_CFG_NODE_ID=0
Copy link
Member

Choose a reason for hiding this comment

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

I don't understand the need for these changes. Some of them just saying the same thing in reverse

Copy link
Contributor Author

Choose a reason for hiding this comment

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

You're right about the PROCESS_ROLES reordering from controller,broker to broker,controller is purely cosmetic. I have reverted that.

However, the other changes are functionally required because we're adding SSL and SASL authentication support to our Kafka integration tests. Here's why:

  1. New Test Requirements:
    Our integration test suite now includes TestKafkaStorageWithSASLSSLPlaintext and TestKafkaStorageWithSASLPlaintext
    These tests require different connection types: basic plaintext, SASL with SSL, and SASL without SSL
    Each needs its own listener and port
  2. Port Changes Were Mandatory:
    Port 9093 was needed for SASL_SSL connections (test requirement)
    Had to move controller to port 9096 to avoid conflict
    Port 9095 added for SASL_PLAINTEXT connections
  3. The 'Redundant' Security Protocol Map:
    SASL_SSL:SASL_SSL,SASL_PLAINTEXT:SASL_PLAINTEXT

This isn't redundant - Kafka requires explicit mapping of each listener to its security protocol
Without these mappings, Kafka doesn't know how to handle the new connection types
4. SSL/SASL Configuration:
All the SSL keystore and SASL authentication settings support the kafka.sh script that generates certificates and runs the secure connection tests
The NODE_ID change from 0→1 was needed because NODE_ID=0 failed to start with our specific multi-listener configuration, while NODE_ID=1 works.

# KRaft settings
- KAFKA_CFG_NODE_ID=1
- KAFKA_CFG_PROCESS_ROLES=controller,broker
- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@localhost:9093
- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092
- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@localhost:9096
# Listeners
- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9096,SASL_SSL://:9093,SASL_PLAINTEXT://:9095
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://127.0.0.1:9092,SASL_SSL://127.0.0.1:9093,SASL_PLAINTEXT://127.0.0.1:9095
- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SASL_SSL:SASL_SSL,SASL_PLAINTEXT:SASL_PLAINTEXT
- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
- KAFKA_CFG_INTER_BROKER_LISTENER_NAME=PLAINTEXT
# SASL Configuration
- KAFKA_CFG_SASL_ENABLED_MECHANISMS=PLAIN
- KAFKA_CLIENT_USERS=admin
- KAFKA_CLIENT_PASSWORDS=admin-secret
# SSL Configuration
- KAFKA_TLS_TYPE=JKS
- KAFKA_CFG_SSL_KEYSTORE_LOCATION=/bitnami/kafka/config/certs/kafka.keystore.jks
- KAFKA_CFG_SSL_KEYSTORE_PASSWORD=kafkapass123
- KAFKA_CFG_SSL_KEY_PASSWORD=kafkapass123
- KAFKA_CFG_SSL_TRUSTSTORE_LOCATION=/bitnami/kafka/config/certs/kafka.truststore.jks
- KAFKA_CFG_SSL_TRUSTSTORE_PASSWORD=kafkapass123
# Allow plaintext listener for development
- ALLOW_PLAINTEXT_LISTENER=yes
# Debug mode for more verbose logs
- BITNAMI_DEBUG=true
# Additional settings
- KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=true
# Force skip KRaft initialization if already done
- KAFKA_SKIP_KRAFT_STORAGE_INITIALIZATION=yes
# KRaft cluster ID
- KAFKA_KRAFT_CLUSTER_ID=MkU3OEVBNTcwNTJENDM2Qg
healthcheck:
test:
[
"CMD-SHELL",
"kafka-topics.sh --list --bootstrap-server localhost:9092",
]
interval: 30s
timeout: 10s
retries: 5
start_period: 30s

volumes:
kafka-data:
190 changes: 163 additions & 27 deletions internal/storage/integration/kafka_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ package integration

import (
"context"
"os"
"strconv"
"testing"
"time"
Expand All @@ -28,30 +29,88 @@ import (
"github.com/jaegertracing/jaeger/internal/testutils"
)

const defaultLocalKafkaBroker = "127.0.0.1:9092"
const (
defaultLocalKafkaBroker = "127.0.0.1:9092"
defaultLocalKafkaBrokerSASLSSLPlaintext = "127.0.0.1:9093"
defaultLocalKafkaBrokerSASLPlaintext = "127.0.0.1:9095"
)

func getEnv(key string, defaultValue string) string {
if v, ok := os.LookupEnv(key); ok {
return v
}
return defaultValue
}

type KafkaIntegrationTestSuite struct {
StorageIntegration
}

func (s *KafkaIntegrationTestSuite) initialize(t *testing.T) {
type kafkaConfig struct {
brokerDefault string
testNameSuffix string
groupIDSuffix string
clientIDSuffix string
authType string
username string
password string
mechanism string
tlsEnabled bool
caCertPath string
skipHostVerify bool
}

func (s *KafkaIntegrationTestSuite) initializeWithConfig(t *testing.T, cfg kafkaConfig) {
logger := zaptest.NewLogger(t, zaptest.WrapOptions(zap.AddCaller()))
const encoding = "json"
const groupID = "kafka-integration-test"
const clientID = "kafka-integration-test"
var groupID, clientID string
if cfg.groupIDSuffix != "" {
groupID = "kafka-" + cfg.groupIDSuffix + "-integration-test"
clientID = "kafka-" + cfg.clientIDSuffix + "-integration-test"
} else {
groupID = "kafka-integration-test"
clientID = "kafka-integration-test"
}
broker := getEnv("KAFKA_BROKER", cfg.brokerDefault)
username := getEnv("KAFKA_USERNAME", cfg.username)
password := getEnv("KAFKA_PASSWORD", cfg.password)

// A new topic is generated per execution to avoid data overlap
topic := "jaeger-kafka-integration-test-" + strconv.FormatInt(time.Now().UnixNano(), 10)
var topic string
if cfg.testNameSuffix != "" {
topic = "jaeger-kafka-" + cfg.testNameSuffix + "-integration-test-" + strconv.FormatInt(time.Now().UnixNano(), 10)
} else {
topic = "jaeger-kafka-integration-test-" + strconv.FormatInt(time.Now().UnixNano(), 10)
}

// Build producer flags
producerFlags := []string{
"--kafka.producer.topic", topic,
"--kafka.producer.brokers", broker,
"--kafka.producer.encoding", encoding,
}

if cfg.authType != "" {
producerFlags = append(producerFlags,
"--kafka.producer.authentication", cfg.authType,
"--kafka.producer.plaintext.username", username,
"--kafka.producer.plaintext.password", password,
"--kafka.producer.plaintext.mechanism", cfg.mechanism,
)
}

if cfg.tlsEnabled {
producerFlags = append(producerFlags,
"--kafka.producer.tls.enabled", "true",
"--kafka.producer.tls.ca", cfg.caCertPath,
"--kafka.producer.tls.skip-host-verify", strconv.FormatBool(cfg.skipHostVerify),
)
}

// Setup producer
f := kafka.NewFactory()
v, command := config.Viperize(f.AddFlags)
err := command.ParseFlags([]string{
"--kafka.producer.topic",
topic,
"--kafka.producer.brokers",
defaultLocalKafkaBroker,
"--kafka.producer.encoding",
encoding,
})
err := command.ParseFlags(producerFlags)
require.NoError(t, err)
f.InitFromViper(v, logger)
err = f.Initialize(metrics.NullFactory, logger)
Expand All @@ -61,21 +120,37 @@ func (s *KafkaIntegrationTestSuite) initialize(t *testing.T) {
})
spanWriter, err := f.CreateSpanWriter()
require.NoError(t, err)

// Build consumer flags
consumerFlags := []string{
"--kafka.consumer.topic", topic,
"--kafka.consumer.brokers", broker,
"--kafka.consumer.encoding", encoding,
"--kafka.consumer.group-id", groupID,
"--kafka.consumer.client-id", clientID,
"--ingester.parallelism", "1000",
}

if cfg.authType != "" {
consumerFlags = append(consumerFlags,
"--kafka.consumer.authentication", cfg.authType,
"--kafka.consumer.plaintext.username", username,
"--kafka.consumer.plaintext.password", password,
"--kafka.consumer.plaintext.mechanism", cfg.mechanism,
)
}

if cfg.tlsEnabled {
consumerFlags = append(consumerFlags,
"--kafka.consumer.tls.enabled", "true",
"--kafka.consumer.tls.ca", cfg.caCertPath,
"--kafka.consumer.tls.skip-host-verify", strconv.FormatBool(cfg.skipHostVerify),
)
}

// Setup consumer
v, command = config.Viperize(app.AddFlags)
err = command.ParseFlags([]string{
"--kafka.consumer.topic",
topic,
"--kafka.consumer.brokers",
defaultLocalKafkaBroker,
"--kafka.consumer.encoding",
encoding,
"--kafka.consumer.group-id",
groupID,
"--kafka.consumer.client-id",
clientID,
"--ingester.parallelism",
"1000",
})
err = command.ParseFlags(consumerFlags)
require.NoError(t, err)
options := app.Options{
Configuration: consumer.Configuration{
Expand All @@ -97,6 +172,47 @@ func (s *KafkaIntegrationTestSuite) initialize(t *testing.T) {
s.CleanUp = func(_ *testing.T) {}
}

func (s *KafkaIntegrationTestSuite) initializeWithSASLPlaintext(t *testing.T) {
s.initializeWithConfig(t, kafkaConfig{
brokerDefault: defaultLocalKafkaBrokerSASLPlaintext,
testNameSuffix: "sasl-plaintext",
groupIDSuffix: "sasl-plaintext",
clientIDSuffix: "sasl-plaintext",
authType: "plaintext",
username: "admin",
password: "admin-secret",
mechanism: "PLAIN",
tlsEnabled: false,
})
}

func (s *KafkaIntegrationTestSuite) initializeWithSASLSSLPlaintext(t *testing.T) {
s.initializeWithConfig(t, kafkaConfig{
brokerDefault: defaultLocalKafkaBrokerSASLSSLPlaintext,
testNameSuffix: "sasl-ssl-plaintext",
groupIDSuffix: "sasl-ssl-plaintext",
clientIDSuffix: "sasl-ssl-plaintext",
authType: "plaintext",
username: "admin",
password: "admin-secret",
mechanism: "PLAIN",
tlsEnabled: true,
caCertPath: "../../../internal/config/tlscfg/testdata/example-CA-cert.pem",
skipHostVerify: true,
})
}

func (s *KafkaIntegrationTestSuite) initialize(t *testing.T) {
s.initializeWithConfig(t, kafkaConfig{
brokerDefault: defaultLocalKafkaBroker,
testNameSuffix: "",
groupIDSuffix: "",
clientIDSuffix: "",
authType: "",
tlsEnabled: false,
})
}

// The ingester consumes spans from kafka and writes them to an in-memory traceStore
type ingester struct {
traceStore *memory.Store
Expand Down Expand Up @@ -134,3 +250,23 @@ func TestKafkaStorage(t *testing.T) {
s.initialize(t)
t.Run("GetTrace", s.testGetTrace)
}

func TestKafkaStorageWithSASLSSLPlaintext(t *testing.T) {
SkipUnlessEnv(t, "kafka")
t.Cleanup(func() {
testutils.VerifyGoLeaksOnce(t)
})
s := &KafkaIntegrationTestSuite{}
s.initializeWithSASLSSLPlaintext(t)
t.Run("GetTrace", s.testGetTrace)
}

func TestKafkaStorageWithSASLPlaintext(t *testing.T) {
SkipUnlessEnv(t, "kafka")
t.Cleanup(func() {
testutils.VerifyGoLeaksOnce(t)
})
s := &KafkaIntegrationTestSuite{}
s.initializeWithSASLPlaintext(t)
t.Run("GetTrace", s.testGetTrace)
}
22 changes: 17 additions & 5 deletions internal/storage/kafka/auth/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,20 @@ func (config *AuthenticationConfig) SetConfiguration(saramaConfig *sarama.Config
if strings.Trim(authentication, " ") == "" {
authentication = none
}
if config.Authentication == tls {

tlsConfigured := config.Authentication == tls ||
config.TLS.CAFile != "" ||
config.TLS.CertFile != "" ||
config.TLS.KeyFile != "" ||
config.TLS.ServerName != "" ||
config.TLS.IncludeSystemCACertsPool

if tlsConfigured && !config.TLS.Insecure {
if err := setTLSConfiguration(&config.TLS, saramaConfig, logger); err != nil {
Copy link
Contributor

Choose a reason for hiding this comment

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

@amilbcahat @yurishkuro It's checking for individual TLS file fields. I think it's complex when the simple solution can be config.Authentication == tls || !config.TLS.Insecure

return err
}
}

switch authentication {
case none:
return nil
Expand Down Expand Up @@ -75,17 +84,20 @@ func (config *AuthenticationConfig) InitFromViper(configPrefix string, v *viper.
config.Kerberos.KeyTabPath = v.GetString(configPrefix + kerberosPrefix + suffixKerberosKeyTab)
config.Kerberos.DisablePAFXFast = v.GetBool(configPrefix + kerberosPrefix + suffixKerberosDisablePAFXFAST)

if config.Authentication == tls {
if !v.IsSet(configPrefix + ".tls.enabled") {
v.Set(configPrefix+".tls.enabled", "true")
Copy link
Member

Choose a reason for hiding this comment

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

don't you need this?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

No, we don't need this. The tests are already passing without this, indicating the current implementation handles this case correctly.

}
// For TLS authentication or when TLS is enabled, process TLS options
if config.Authentication == tls || v.GetBool(configPrefix+".tls.enabled") {
tlsClientConfig := tlscfg.ClientFlagsConfig{
Prefix: configPrefix,
}
var err error
tlsCfg, err := tlsClientConfig.InitFromViper(v)
if err != nil {
return fmt.Errorf("failed to process Kafka TLS options: %w", err)
}
// Set IncludeSystemCACertsPool to true for TLS authentication
tlsCfg.IncludeSystemCACertsPool = (config.Authentication == tls)
Copy link
Contributor

Choose a reason for hiding this comment

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

this may introduces a security vulnerability by disabling system CA validation for SASL_SSL connections

tlsCfg.Insecure = false

config.TLS = tlsCfg
}

Expand Down
1 change: 1 addition & 0 deletions internal/storage/kafka/auth/tls.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ func setTLSConfiguration(config *configtls.ClientConfig, saramaConfig *sarama.Co
if err != nil {
return fmt.Errorf("error loading tls config: %w", err)
}

saramaConfig.Net.TLS.Enable = true
saramaConfig.Net.TLS.Config = tlsConfig
}
Expand Down
Loading
Loading