
阅读《2024 中国开源开发者报告》赢大奖,扫码申请享特权

OpenTelemetry Demo 包含以下 CNCF 项目:OpenTelemetry、Envoy、OpenFeature/Flagd、Jaeger、Prometheus、Valkey。OpenTelemetry Demo 2.0 现已正式发布,一些更新亮点如下:
- 引入 Flagd-ui:这是自 1.9.0 版本以来最期待的功能。你可以在 Demo 中直接管理功能标志。
- 引入 Image-provider:自 1.10.0 版本起引入了名为 Image Provider 的新服务,用于提供静态产品图片。该服务基于 NGINX,返回每个产品的图片,并演示如何使用 NGINX 原生 OpenTelemetry 模块进行插桩。
- 用 Valkey 替代 Redis:自 1.11.0 版本起用 Valkey 替代了 Redis 服务,为 OTel Demo 引入了另一个 CNCF 项目。
- 构建参数移至 .env 文件:如果你分叉了 Demo 并使用自定义镜像,保持与上游同步一直很麻烦。为简化操作,项目团队将大多数配置移至了 .env 文件。还添加了一个 _DOCKERFILE 环境变量,允许用户指定构建指令的位置。
- 服务重命名:如果你从一开始就使用 OTel Demo,可能习惯了每个服务的冗长名称。2.0 简化了名称,去掉了所有服务名称的 -service 后缀。现在,你将看到 Ad、Cart 和 Checkout,而不是 ad-service、cart-service 和 checkout-service。
- Accounting 重写为 .NET:项目团队希望在 Demo 中展示 OTel 的 .NET 自动插桩,而不添加额外服务。决定将原本用 Go 编写的 Accounting 重写为 .NET。现在,Demo 中既有 Accounting,也有 Cart services,各自演示不同方式对 .NET 应用进行插桩。
- 增加示例记录:Cart service 现在记录 GetCart 和 AddItem 操作的示例,允许指标与跨度之间的关联。
- React Native 示例应用:此次发布最重要的新增内容之一是全新的 React Native 应用示例。它可以为 Android 或 iOS 构建(目前仅支持本地执行)。详情可查看 React Native App documentation page。
- 消息跨度的跨度链接:根据 OTel 的建议,始终链接生产者和消费者跨度 (Messaging spans - Trace structure),Demo 现在演示了这一最佳实践。
Accounting
和Fraud-Detection
的消费者跨度链接到生产者跨度 (Checkout/orders publish
)。 - 多架构构建:为确保各种用户能够在本地运行 Demo,引入了新的构建目标,以支持构建多平台镜像(适用于 arm64 和 amd64 架构)。
- 配置 Dependabot:已配置 Dependabot,以自动保持 Demo 的最新状态。
目前面临的挑战包括:
- Grafana 仪表板:随着语义约定和工具的演变,确保 Grafana 仪表板始终正常工作是一项挑战。
- Dependabot PR 测试:虽然 Dependabot 有助于保持所有服务依赖项的最新状态,但项目尚未实现自动化测试,以确保更新不会导致崩溃。这仍然是一个手动过程。
- Demo 可扩展性:在扩展演示场景的同时保持 Demo 可以轻松运行是面临的最大挑战之一。
接下来,项目团队计划:
- 恢复 Erlang/Elixir:在 2024 年 3 月曾移除了最初用 Elixir 编写的 Feature Flag 服务,转而使用 OpenFeature 和 Flagd。自那时起,Demo 中未再包含该语言的服务,现在计划重新引入 Erlang/Elixir。
- React Native 应用的远程访问:计划使 React Native 应用能够访问远程运行的 Demo,扩展其可用性。
- 更好的自动化和测试:正在努力改善自动化和测试流程,特别是对于 Dependabot PR,以简化开发工作流程。
还没有评论,来说两句吧...