jaeger v1.58.0 版本更新介绍
发布日期: 2024-06-11
版本号: v1.58.0
本次更新涉及后端和UI的调整。后端部分进行了多项破坏性变更,包括移除对otel spanmetrics处理器、expvar指标、Elasticsearch v5/v6以及gRPC-Plugin的支持。同时修复了若干问题,优化了Elasticsearch工具集成、指标处理逻辑,重构了自适应采样聚合器,并改进了gRPC存储的健康检查机制。新增实验性功能支持与OpenTelemetry对齐的gRPC存储配置。CI方面进行了多项改进,包括优化测试流程、增强代码规范检查,以及调整Docker相关配置。UI部分更新了调试文档说明,并在CI流程中增加了对特定PR来源的限制机制。
更新内容 (中文)
后端变更
⛔ 破坏性变更
- 移除对otel spanmetrics处理器的支持 (@varshith257 在 #5539 中)
- 移除对基于expvar的指标的支持 (@joeyyy09 在 #5437 中)
- 移除对Elasticsearch v5/v6的支持 (@FlamingSaint 在 #5448 中)
- 移除对gRPC-Plugin的支持 (@h4shk4t 在 #5388 中)
🐞 错误修复与小幅改进
- 设置所需的提供者/转换器,而不是依赖默认值 (@TylerHelmuth 在 #5543 中)
- 在发布版中添加Elasticsearch辅助二进制文件 (@FlamingSaint 在 #5501 中)
- 用直接调用expvar替代内部metrics.factory的使用 (@prakrit55 在 #5496 中)
- [重构] 将根span处理器移入聚合器 (@Pushkarm029 在 #5478 中)
- 重构自适应采样聚合器与策略存储 (@Pushkarm029 在 #5441 中)
- [远程存储] 为grpc服务器添加健康检查 (@james-ryans 在 #5461 中)
- 将alpine镜像版本固定为3.19.0 (@prakrit55 在 #5454 中)
- 将grpc-plugin存储类型名称简化为grpc (@yurishkuro 在 #5442 中)
- [grpc-storage] 使用grpc.newclient (@yurishkuro 在 #5393 中)
- 用私有函数configurefromoptions替换公共函数initfromoptions (@yurishkuro 在 #5417 中)
- [jaeger-v2] 修复e2e存储集成与v0.99.0 otel col不兼容的问题 (@james-ryans 在 #5419 中)
- 为Cassandra添加purge方法 (@akagami-harsh 在 #5414 中)
- [v2] 在文档中添加图表 (@yurishkuro 在 #5412 中)
- [es] 移除未使用的indexcache (@yurishkuro 在 #5408 中)
🚧 实验性功能
- 创建新的grpc存储配置以与otel对齐 (@akagami-harsh 在 #5331 中)
👷 CI 改进
- 添加工作流以验证dependabot配置 (@yurishkuro 在 #5556 中)
- 为docker compose文件创建单独的目录 (@FlamingSaint 在 #5554 中)
- [ci] 在工作流中使用m.x版本名 (@hellspawn679 在 #5546 中)
- 启用lint规则:unused-parameter (@FlamingSaint 在 #5534 中)
- 添加新的工作流来测试发布工作流 (@yurishkuro 在 #5532 中)
- 启用lint规则:struct-tag & unexported-return (@FlamingSaint 在 #5533 中)
- 启用lint规则:early-return & indent-error-flow (@FlamingSaint 在 #5526 中)
- 启用lint规则:exported (@FlamingSaint 在 #5525 中)
- 启用lint规则:confusing-results & receiver-naming (@FlamingSaint 在 #5524 中)
- 添加使用python脚本dco-check的手动DCO检查 (@yurishkuro 在 #5528 中)
- 使用docker compose运行Cassandra集成测试 (@hellspawn679 在 #5520 中)
- 启用lint规则:modifies-value-receiver (@FlamingSaint 在 #5517 中)
- 启用lint规则:unused-receiver (@FlamingSaint 在 #5521 中)
- 启用lint规则:dot-imports (@FlamingSaint 在 #5513 中)
- 启用lint规则:bare-return & empty-lines (@FlamingSaint 在 #5512 中)
- 通过专用的go.mod管理第三方工具 (@yurishkuro 在 #5509 中)
- 启用lint规则:use-any (@FlamingSaint 在 #5510 中)
- 启用lint规则:unexported-naming (@FlamingSaint 在 #5511 中)
- 添加nolintlint linter (@yurishkuro 在 #5508 中)
- 使用docker compose运行Kafka集成测试 (@hellspawn679 在 #5500 中)
- 使用docker compose运行Elasticsearch/OpenSearch集成测试 (@hellspawn679 在 #5490 中)
- 分离v1和v2的es/os集成测试 (@yurishkuro 在 #5487 中)
- 移除args并在from指令中指定镜像 (@prakrit55 在 #5465 中)
- [v2] 移除e2e测试中的重试并增加超时时间 (@james-ryans 在 #5460 中)
- 将代码覆盖率阈值恢复到95% (@varshith257 在 #5457 中)
- [v2] 在e2e测试的读写span中添加日志记录 (@james-ryans 在 #5456 中)
- 从测试中移除Elasticsearch v5/v6 (@FlamingSaint 在 #5451 中)
- [v2] 将e2e span_reader的grpc.dialcontext替换为newclient (@james-ryans 在 #5443 中)
- 停止运行Elasticsearch v5/v6的集成测试 (@yurishkuro 在 #5440 中)
- [v2] 从e2e测试中移除临时的skipbinaryattrs标志 (@james-ryans 在 #5436 中)
- [v2] 如果e2e测试失败,在github ci中转储存储docker日志 (@james-ryans 在 #5433 中)
- [v2] 将e2e jaeger-v2二进制文件的日志输出更改为临时文件 (@james-ryans 在 #5431 中)
- [bug] 修复调用upload-codecov action的语法 (@yurishkuro 在 #5416 中)
- 使用辅助action来重试codecov上传 (@yurishkuro 在 #5411 中)
- 仅为linux/amd64构建用于crossdock测试的docker镜像 (@varshith257 在 #5410 中)
📊 UI 变更
🐞 错误修复与小幅改进
- 记录如何在vscode中调试单元测试 (@RISHIKESHk07 在 #2297 中)
👷 CI 改进
- 添加GitHub actions以阻止来自fork/main分支的PR (@varshith257 在 #2296 中)
更新内容 (原始)
Backend Changes
⛔ Breaking Changes
- Remove support for otel spanmetrics processor (@varshith257 in #5539)
- Remove support for expvar-backed metrics (@joeyyy09 in #5437)
- Remove support for elasticsearch v5/v6 (@FlamingSaint in #5448)
- Remove support for gRPC-Plugin (@h4shk4t in #5388)
🐞 Bug fixes, Minor Improvements
- Set desired providers/converters instead of relying on defaults (@TylerHelmuth in #5543)
- Add elasticsearch helper binaries to release (@FlamingSaint in #5501)
- Replace internal metrics.factory usage with direct calls to expvar (@prakrit55 in #5496)
- [refactor] move root span handler into aggregator (@Pushkarm029 in #5478)
- Refactor adaptive sampling aggregator & strategy store (@Pushkarm029 in #5441)
- [remote-storage] add healthcheck to grpc server (@james-ryans in #5461)
- Fix alpine image to 3.19.0 (@prakrit55 in #5454)
- Replace grpc-plugin storage type name with just grpc (@yurishkuro in #5442)
- [grpc-storage] use grpc.newclient (@yurishkuro in #5393)
- Replace public initfromoptions with private configurefromoptions (@yurishkuro in #5417)
- [jaeger-v2] fix e2e storage integration v0.99.0 otel col failing (@james-ryans in #5419)
- Add purge method for cassandra (@akagami-harsh in #5414)
- [v2] add diagrams to the docs (@yurishkuro in #5412)
- [es] remove unused indexcache (@yurishkuro in #5408)
🚧 Experimental Features
- Create new grpc storage configuration to align with otel (@akagami-harsh in #5331)
👷 CI Improvements
- Add workflow to validate dependabot config (@yurishkuro in #5556)
- Create separate directories for docker compose files (@FlamingSaint in #5554)
- [ci] use m.x version names in workflows (@hellspawn679 in #5546)
- Enable lint rule: unused-parameter (@FlamingSaint in #5534)
- Add a new workflow for testing the release workflow (@yurishkuro in #5532)
- Enable lint rules: struct-tag & unexported-return (@FlamingSaint in #5533)
- Enable lint rules: early-return & indent-error-flow (@FlamingSaint in #5526)
- Enable lint rule: exported (@FlamingSaint in #5525)
- Enable lint rules: confusing-results & receiver-naming (@FlamingSaint in #5524)
- Add manual dco check using python script dco-check (@yurishkuro in #5528)
- Use docker compose for cassandra integration tests (@hellspawn679 in #5520)
- Enable lint rule: modifies-value-receiver (@FlamingSaint in #5517)
- Enable lint rule: unused-receiver (@FlamingSaint in #5521)
- Enable lint rule: dot-imports (@FlamingSaint in #5513)
- Enable lint rules: bare-return & empty-lines (@FlamingSaint in #5512)
- Manage 3rd party tools via dedicated go.mod (@yurishkuro in #5509)
- Enable lint rule: use-any (@FlamingSaint in #5510)
- Enable lint rule: unexported-naming (@FlamingSaint in #5511)
- Add nolintlint linter (@yurishkuro in #5508)
- Use docker compose for kafka integration tests (@hellspawn679 in #5500)
- Use docker compose for elasticsearch/opensearch integration tests (@hellspawn679 in #5490)
- Split v1 and v2 es/os integration tests (@yurishkuro in #5487)
- Remove args and depict the image in from directive (@prakrit55 in #5465)
- [v2] remove retries and increase timeout for e2e tests (@james-ryans in #5460)
- Restore code coverage threshold back to 95% (@varshith257 in #5457)
- [v2] add logging to read/write spans in e2e tests (@james-ryans in #5456)
- Remove elasticsearch v5/v6 from tests (@FlamingSaint in #5451)
- [v2] replace e2e span_reader grpc.dialcontext with newclient (@james-ryans in #5443)
- Stop running integration tests for elasticsearch v5/v6 (@yurishkuro in #5440)
- [v2] remove temporary skipbinaryattrs flag from e2e tests (@james-ryans in #5436)
- [v2] dump storage docker logs in github ci if e2e test failed (@james-ryans in #5433)
- [v2] change e2e jaeger-v2 binary log output to temp file (@james-ryans in #5431)
- [bug] fix syntax for invoking upload-codecov action (@yurishkuro in #5416)
- Use helper action to retry codecov uploads (@yurishkuro in #5411)
- Only build docker images for crossdock tests for linux/amd64 (@varshith257 in #5410)
📊 UI Changes
🐞 Bug fixes, Minor Improvements
- Document how to debug unit tests in vscode (@RISHIKESHk07 in #2297)
👷 CI Improvements
- Github actions added to block prs from fork/main branch (@varshith257 in #2296)
下载链接
- jaeger-1.58.0-darwin-amd64.sha256sum.txt
- jaeger-1.58.0-darwin-amd64.tar.gz
- jaeger-1.58.0-darwin-amd64.tar.gz.asc
- jaeger-1.58.0-darwin-arm64.sha256sum.txt
- jaeger-1.58.0-darwin-arm64.tar.gz
- jaeger-1.58.0-darwin-arm64.tar.gz.asc
- jaeger-1.58.0-linux-amd64.sha256sum.txt
- jaeger-1.58.0-linux-amd64.tar.gz
- jaeger-1.58.0-linux-amd64.tar.gz.asc
- jaeger-1.58.0-linux-arm64.sha256sum.txt
- jaeger-1.58.0-linux-arm64.tar.gz
- jaeger-1.58.0-linux-arm64.tar.gz.asc
- jaeger-1.58.0-linux-ppc64le.sha256sum.txt
- jaeger-1.58.0-linux-ppc64le.tar.gz
- jaeger-1.58.0-linux-ppc64le.tar.gz.asc
- jaeger-1.58.0-linux-s390x.sha256sum.txt
- jaeger-1.58.0-linux-s390x.tar.gz
- jaeger-1.58.0-linux-s390x.tar.gz.asc
- jaeger-1.58.0-windows-amd64.sha256sum.txt
- jaeger-1.58.0-windows-amd64.tar.gz
- jaeger-1.58.0-windows-amd64.tar.gz.asc
- jaeger-1.58.0-windows-amd64.zip
- jaeger-1.58.0-windows-amd64.zip.asc
- jaeger-1.58.0.sha256sum.txt
- jaeger-SBOM.spdx.json
- jaeger-tools-1.58.0-darwin-amd64.sha256sum.txt
- jaeger-tools-1.58.0-darwin-amd64.tar.gz
- jaeger-tools-1.58.0-darwin-amd64.tar.gz.asc
- jaeger-tools-1.58.0-darwin-arm64.sha256sum.txt
- jaeger-tools-1.58.0-darwin-arm64.tar.gz
- jaeger-tools-1.58.0-darwin-arm64.tar.gz.asc
- jaeger-tools-1.58.0-linux-amd64.sha256sum.txt
- jaeger-tools-1.58.0-linux-amd64.tar.gz
- jaeger-tools-1.58.0-linux-amd64.tar.gz.asc
- jaeger-tools-1.58.0-linux-arm64.sha256sum.txt
- jaeger-tools-1.58.0-linux-arm64.tar.gz
- jaeger-tools-1.58.0-linux-arm64.tar.gz.asc
- jaeger-tools-1.58.0-linux-ppc64le.sha256sum.txt
- jaeger-tools-1.58.0-linux-ppc64le.tar.gz
- jaeger-tools-1.58.0-linux-ppc64le.tar.gz.asc
- jaeger-tools-1.58.0-linux-s390x.sha256sum.txt
- jaeger-tools-1.58.0-linux-s390x.tar.gz
- jaeger-tools-1.58.0-linux-s390x.tar.gz.asc
- jaeger-tools-1.58.0-windows-amd64.sha256sum.txt
- jaeger-tools-1.58.0-windows-amd64.tar.gz
- jaeger-tools-1.58.0-windows-amd64.tar.gz.asc
- jaeger-tools-1.58.0-windows-amd64.zip
- jaeger-tools-1.58.0-windows-amd64.zip.asc