功能标志

该演示提供了几个功能标志,您可以使用它们来模拟不同的场景。这些标志由 flagd 管理,这是一个支持 OpenFeature 的简单功能标志服务。

运行演示时,可以通过 https://:8080/feature 提供的用户界面更改标志值。通过此用户界面更改的值将在 flagd 服务中得到反映。

通过用户界面更改功能标志时,有两种选择:

  • 基本视图:一个用户友好的视图,其中可以为每个功能标志选择并保存默认变体(与通过原始文件配置时需要更改的选项相同)。目前,基本视图不支持分段定位。

  • 高级视图:一个视图,其中加载原始配置文件 JSON 文件,并可以在浏览器中进行编辑。该视图提供了编辑原始 JSON 文件带来的灵活性,但同时也提供了模式检查,以确保 JSON 有效且提供的配置值正确。

已实现的功能标志

功能标志服务描述
adServiceFailure广告大约 1/10 的时间为 GetAds 生成错误
adServiceManualGc广告触发广告服务中的完整手动垃圾回收
adServiceHighCpu广告在广告服务中触发高 CPU 负载。如果要演示 CPU 限制,请设置 CPU 资源限制
cartServiceFailure购物车在每次调用 EmptyCart 时生成一个错误
emailMemoryLeak电子邮件模拟 email 服务中的内存泄漏。
llmInaccurateResponseLLM模拟的 LLM 服务为产品 ID L9ECAV7KIM 返回了不准确的产品评论摘要。
llmRateLimitErrorLLM模拟的 LLM 服务间歇性地返回带有 HTTP 状态码 429 的 RateLimitError。
productCatalogFailure产品目录为产品 ID:OLJCESPC7ZGetProduct 请求生成错误
recommendationServiceCacheFailure推荐由于指数级增长的缓存而导致内存泄漏。1.4 倍增长,50% 的请求触发增长。
paymentServiceFailure支付调用 charge 方法时生成错误。
paymentServiceUnreachable结账调用 PaymentService 时使用错误的地址,使其看起来 PaymentService 不可用。
loadgeneratorFloodHomepage负载生成器开始以大量的请求淹没主页,可以通过更改 flagd JSON 来配置状态。
kafkaQueueProblemsKafka使 Kafka 队列过载,同时引入消费者延迟,导致滞后峰值。
imageSlowLoad前端利用 envoy 故障注入,导致前端产品图像加载延迟。

引导式调试场景

recommendationServiceCacheFailure 场景有一个 专用演练文档,以帮助理解如何使用 OpenTelemetry 调试内存泄漏。

功能标志架构

有关 flagd 工作原理的更多信息,请参阅 flagd 文档,有关 OpenFeature 工作原理的更多信息,请访问 OpenFeature 网站,以及 OpenFeature API 的文档。