Skip to content

兼容性

loongsuite-go确保与当前支持的Go语言版本兼容:

每个主要的 Go 版本都会被支持,直到有两个更新的主要版本发布。 例如,Go 1.5 被支持到 Go 1.7 发布,Go 1.6 被支持到 Go 1.8 发布。

对于不再受上游支持的Go版本,loongsuite-go将通过以下方式停止确保与这些版本的兼容性:

  • 将发布loongsuite-go的次要版本,以增加对新支持的Go版本的支持。
  • loongsuite-go的下一个次要版本将移除对最旧(现已在上游归档)的Go版本的兼容性测试。此版本以及将来的loongsuite-go版本可能包含仅受当前支持的Go版本支持的功能。

该项目在以下系统上进行了测试。

操作系统Go 版本架构
Ubuntu1.24amd64
Ubuntu1.23amd64
Ubuntu1.24386
Ubuntu1.23386
Ubuntu1.24arm64
Ubuntu1.23arm64
macOS 131.24amd64
macOS 131.23amd64
macOS1.24arm64
macOS1.23arm64
Windows1.24amd64
Windows1.23amd64
Windows1.24386
Windows1.23386

虽然该项目应该适用于其他系统,但目前不对这些系统提供兼容性保证。

OpenTelemetry 兼容性

为了解决因缺少上下文而导致的跟踪中断等问题,我们需要使用此otel工具来对 OpenTelemetry(OTel)本身进行埋点。这意味着,如果用户明确添加 OTel 依赖项,这些依赖项的版本必须与otel的要求相匹配,否则,该工具将无法正常工作。目前,otel与支持的 OTel 版本的映射如下:

工具版本OTel 版本OTel Contrib 版本
0.1.0-RCv1.28.0-
v0.2.0v1.30.0v0.55.0
v0.3.0v1.31.0v0.56.0
v0.4.0v1.32.0v0.57.0
v0.4.1v1.32.0v0.57.0
v0.5.0v1.32.0v0.57.0
v0.6.0v1.33.0v0.58.0
v0.7.0v1.33.0v0.58.0
v0.8.0v1.33.0v0.58.0
v0.9.0v1.35.0v0.60.0
v0.9.1v1.35.0v0.60.0
v0.9.2v1.35.0v0.60.0
v0.10.0v1.35.0v0.60.0
v1.8.1v1.40.0v0.65.0
v1.8.2v1.40.0v0.65.0
v1.9.0v1.40.0v0.65.0
v1.10.0v1.40.0v0.65.0

遥测迁移说明

以下变更会影响导出的 span 属性与指标。升级后请同步更新相关看板与告警。

rueidis:db.system.name 重命名为 redis

此前 rueidis 埋点使用 db.system.name="rueidis"。现已改为 db.system.name="redis", 以符合 OpenTelemetry 语义约定,并与 goredis / redigo 保持一致。

  • 影响: 依赖 db.system.name="rueidis" 过滤的时间序列与 span 查询在升级后将不再匹配。
  • 迁移: 将过滤/聚合条件改为 db.system.name="redis"。如需区分客户端库,请使用 instrumentation scope name。

Elasticsearch:http.server.request.duration 替换为 db.client.request.duration

Elasticsearch 插件此前错误注册了 HttpServerMetrics("elasticsearch.client"),会为 客户端操作导出 http.server.request.duration。现已替换为 DbClientMetrics("nosql.elasticsearch")

之前(不正确)之后
ES 插件导出的 http.server.request.durationdb.client.request.duration,且 db.system.name=elasticsearch
  • 不变: net/http 传输层的 http.client.request.duration 仍会为同一请求导出。
  • 迁移: ES API 延迟请使用 db.client.request.duration{db.system.name="elasticsearch"}; HTTP 传输延迟请使用 http.client.request.duration。依赖 ES 作用域下 http.server.request.duration 的看板需更新或移除。
  • 不做双写: 原先在客户端 span 上导出的 http.server.* 不符合语义约定,不会在 弃用窗口内继续保留。