OpenTelemetry Focus,2023 年 9 月
博客文章在发布后不会更新。这篇文章已经发布一年多了,其内容可能已过时,部分链接可能无效。在依赖任何信息之前,请务必核实。
欢迎回到 2023 年 9 月的 OpenTelemetry Focus!秋风带来了项目的繁忙,我们正在为 KubeCon 和 Observability Day 做准备。您会参加吗?我们希望在那里见到您,参加我们首次举办的 OpenTelemetry Contribfest、Project Pavilion 以及更多活动!
您是维护者,有想要在此处展示的内容吗?通过 电子邮件联系 Austin Parker,或在 CNCF Slack 的 #otel-comms 频道联系。
发布和更新
以下是我们一些核心存储库的最新更新。
规范
最新的更新(v1.25.0)为 Metrics 和 Logs 带来了几项主要更改。Metric 名称的最大长度已从 63 个字符增加到 255 个字符。MetricProducer 规范已进入功能冻结期并已稳定。添加了同步 Gauge 指令和澄清了指标点持久性,并将“advice”一词替换为“advisory parameters”。已建立一项新规则,将 SimpleFixedSizeExemplarReservoir 的默认大小定义为 1。在 Logs 中,GCP 数据模型已更新为使用 TraceFlags 而不是 gcp.trace_sampled。此外,OpenTelemetry Protocol 的一项更改修复并澄清了 OTLP 导出器规范中“transient error”的定义。
兼容性更新包括 OpenTracing Shim 和 Prometheus 的更改,后者默认允许更改指标名称,因为它从 Prometheus 转换为 OpenTelemetry。
有关完整详细信息,请参阅 v1.24.0 和 v1.25.0 之间的更改
Collector (收集器)
在 OpenTelemetry Collector (v0.86.0) 的最新版本中,进行了几项重要更新。日志导出器已弃用,并被新添加的调试导出器取代。此外,linux/s390x 架构现已纳入交叉构建测试。
此版本中发生了重要的 API 更改。已移除 service.PipelineConfig,这构成了一个重大更改。几个 obsreport 模块的函数和结构体已被弃用,主要涉及 Exporter、Processor、Receiver 和 Scraper 功能。这些功能已移至各个辅助模块。
有关详细描述以及指向相应迁移和弃用的链接,请参阅 发布页面。
collector-contrib 也包含许多更新。重要的重大更改包括移除已弃用的 jaeger 和 jaegerthrifthttp 导出器,以及与 pkg/ottl、pkg/stanza、mongoDb 接收器、Azure Monitor 导出器、tailsampling 处理器等多个包相关的更改,以符合 checkapi。
增强功能包括 tailsampling 处理器中的亚秒级决策等待时间、resourcedetection 处理器中的主机 cpuinfo 属性支持、为 split.Config 添加“omit_pattern”设置,以及 pkg/ottl 包的几项更新,例如添加新的“TruncateTime”函数以及支持函数调用中的命名参数等。
已针对以下问题进行了错误修复:tailsampling 处理器接受重复的策略名称、AWS EMF 导出器中具有 NaN 值的指标的 JSON marshaling 错误,以及在导出时恢复 AWS X-Ray 元数据结构,以及一系列针对各种组件的其他错误修复。
v0.85.0 中也有几项重大更改。
- 移除已弃用的 Kubernetes API 资源,如 HorizontalPodAutoscaler v2beta2 版本和 CronJob v1beta1 版本,意味着在 Kubernetes 1.22 及更早版本上将不再发出这些资源的指标。
- Prometheus 导出器现在默认附加类型和单位后缀,可以通过将“add_metric_suffixes”设置为 false 来禁用。
- 将
attributesprocessor和resourceprocessor功能门coreinternal.attraction.hash.sha256转换为稳定版。
再次提醒,在更新之前请仔细参阅发布说明。
Operator v0.85.0 已发布。增强功能包括在自动检测中为基于 Alpine 的镜像添加 .NET 自动检测支持,Go 自动检测支持已升级到 v0.3.0-alpha。此外,Operator 现在允许 collector CRD 指定要挂载的 configmap 列表,并引入了一种新的协调方法以减少复杂性和重复。还修复了一个错误,即 Operator 确保在实例发生更改时运行升级机制,这在 Operator 升级时,实例从非托管状态转换为托管状态时特别有用。组件更新包括 OpenTelemetry Collector、Contrib 和一些特定语言的自动检测。
重要更改:Operator 现在允许引入可靠的升级机制来处理实例更改。
重大更改:Go 自动检测支持已从先前的版本大幅升级到 v0.3.0-alpha,这可能包含重大更改。
此版本还包含 v0.84.0 的重大更改。
- Target allocator 不再具有默认的内存和 CPU 限制,以匹配 collector 的默认设置。
- 当使用 Prometheus 导出器时,会创建 ServiceMonitors。
Java
版本 1.30 包含对孵化 API 和 SDK 的许多更新。在 API 孵化器中,添加了一个实验性的同步 Gauge。SDK Metric System 已经增强了其功能,添加了 attributes advice API、AttributesProcessor toString、一个属性过滤器助手,并将指标名称的最大长度从 63 个字符增加到 255 个字符。Prometheus 导出器在非 ucum 单位以及将单位添加到 TYPE 和 HELP 注释中的指标名称方面进行了更改。
在 SDK Extensions 中,为孵化器添加了基于文件的配置支持。已更新以处理 Autoconfigure ConfigProperties#getMap 过滤器中的空值条目。
开发人员需要注意一个重要的弃用。io.opentelemetry:opentelemetry-semconv 已弃用并将被移除;现在从新存储库引入了一个备用项 io.opentelemetry.semconv:opentelemetry-semconv:1.21.0-alpha。
Java Instrumentation 带来了重大更改,包括添加新的 Java Agent 检测、增强功能和错误修复。重要更改包括将实验性 HTTP 服务器指标拆分为一个单独的类,将 HttpClientResend 和 HttpRouteHolder 重命名为 HttpClientResendCount 和 HttpServerRoute,以及移除一个已弃用的配置。
已为 Hibernate Reactive 添加了新的 Java Agent 检测。增强功能包括支持 AWS Secrets Manager JDBC URL、改进了对语义约定更改的支持、将 javaagent 添加到检测 BOM 中,等等。还修复了几个错误,例如 OpenJ9 的 getDefinedPackage 查找问题、Lettuce 检测中序列化密钥的问题,以及 JMX 自动检测在没有触发器时无法工作的问题。
Go
版本 1.19.0 是 Metrics 的第一个稳定版本,标准项目稳定性保证现在适用于 go.opentelemetry.io/otel/sdk/metric 包。
新增功能包括一个新的“Roll the Dice”应用程序示例以及 WithWriter 和 WithPrettyPrint 选项,用于自定义 io.Writer 并以人类可读的 JSON 格式显示输出。
值得注意的更改包括允许在指标仪器名称中使用“/”字符,以及导出器的默认输出格式更改,现在更加紧凑。
已修复的问题包括一个重复出现的问题,即 SDK 在每次 Collect 时尝试创建 Prometheus 指标,即使已知作用域无效。在移除方面,go.opentelemetry.io/otel/bridge/opencensus.NewMetricExporter 已被 NewMetricProducer 取代。
由于内容繁多,建议通过参阅 完整变更日志 来获取详细信息。
请注意,v1.18.0 包含了几项弃用和移除。
- Jaeger 导出器和示例已被移除,因为 Jaeger 现在接受原生 OTLP。
- 不再保证 Go 1.20 版本之前的兼容性。
JavaScript
版本 1.17.0 修复了先前版本中一个意外的重大更改。
实验性软件包中有几项重要更改,包括弃用旧的配置 API。
.NET
版本 1.6.0 包含对 Metrics 的少量更新。
新闻和即将举行的活动
北美 KubeCon 即将在芝加哥举行,日程安排已公布!查看可观测性主题,了解关于 OpenTelemetry、Prometheus 等的演讲。
Observability Day 也将回归,并且它将成为一个很棒的活动!请查看上面的链接中公布的日程安排。
我们也很高兴地宣布我们有史以来第一次 Contribfest!您将有机会与 Collector 和 JavaScript SIG 的维护者一起处理问题和 PR,并了解更多关于如何为 OpenTelemetry 做出贡献。
请务必在本周继续关注博客,获取关于今年 11 月 KubeCon 所有活动的完整细分!